{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 灰色关联分析法\n",
    "\n",
    "对于两个系统之间的因素，其随时间或不同对象而变化的关联性大小的量度，称为关联度。在系统发展过程中，若两个因素变化的趋势具有一致性，即同步变化程度较高，即可谓二者关联程度较高；反之，则较低。因此，灰色关联分析方法，是根据因素之间发展趋势的相似或相异程度，亦即“灰色关联度”，作为衡量因素间关联程度的一种方法。\n",
    "\n",
    "### 简介\n",
    "灰色系统理论提出了对各子系统进行灰色关联度分析的概念，意图透过一定的方法，去寻求系统中各子系统（或因素）之间的数值关系。因此，灰色关联度分析对于一个系统发展变化态势提供了量化的度量，非常适合动态历程分析。\n",
    "###  计算步骤\n",
    "1. 确实参考数列与比较数列\n",
    "2. 对参考数列与比较数列进行无量纲化处理\n",
    "3. 计算关联系数,求关联度\n",
    "\n",
    "此处我给出的是第三步的实现方式,无量纲化请自己处理."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T07:38:47.925761Z",
     "start_time": "2019-07-19T07:38:47.467957Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fixed acidity</th>\n",
       "      <th>volatile acidity</th>\n",
       "      <th>citric acid</th>\n",
       "      <th>residual sugar</th>\n",
       "      <th>chlorides</th>\n",
       "      <th>free sulfur dioxide</th>\n",
       "      <th>total sulfur dioxide</th>\n",
       "      <th>density</th>\n",
       "      <th>pH</th>\n",
       "      <th>sulphates</th>\n",
       "      <th>alcohol</th>\n",
       "      <th>quality</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>7.4</td>\n",
       "      <td>0.70</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.076</td>\n",
       "      <td>11.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>0.9978</td>\n",
       "      <td>3.51</td>\n",
       "      <td>0.56</td>\n",
       "      <td>9.4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7.8</td>\n",
       "      <td>0.88</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.098</td>\n",
       "      <td>25.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>0.9968</td>\n",
       "      <td>3.20</td>\n",
       "      <td>0.68</td>\n",
       "      <td>9.8</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.8</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.04</td>\n",
       "      <td>2.3</td>\n",
       "      <td>0.092</td>\n",
       "      <td>15.0</td>\n",
       "      <td>54.0</td>\n",
       "      <td>0.9970</td>\n",
       "      <td>3.26</td>\n",
       "      <td>0.65</td>\n",
       "      <td>9.8</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11.2</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.56</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.075</td>\n",
       "      <td>17.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>0.9980</td>\n",
       "      <td>3.16</td>\n",
       "      <td>0.58</td>\n",
       "      <td>9.8</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>7.4</td>\n",
       "      <td>0.70</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.076</td>\n",
       "      <td>11.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>0.9978</td>\n",
       "      <td>3.51</td>\n",
       "      <td>0.56</td>\n",
       "      <td>9.4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   fixed acidity  volatile acidity  citric acid  residual sugar  chlorides  \\\n",
       "0            7.4              0.70         0.00             1.9      0.076   \n",
       "1            7.8              0.88         0.00             2.6      0.098   \n",
       "2            7.8              0.76         0.04             2.3      0.092   \n",
       "3           11.2              0.28         0.56             1.9      0.075   \n",
       "4            7.4              0.70         0.00             1.9      0.076   \n",
       "\n",
       "   free sulfur dioxide  total sulfur dioxide  density    pH  sulphates  \\\n",
       "0                 11.0                  34.0   0.9978  3.51       0.56   \n",
       "1                 25.0                  67.0   0.9968  3.20       0.68   \n",
       "2                 15.0                  54.0   0.9970  3.26       0.65   \n",
       "3                 17.0                  60.0   0.9980  3.16       0.58   \n",
       "4                 11.0                  34.0   0.9978  3.51       0.56   \n",
       "\n",
       "   alcohol  quality  \n",
       "0      9.4        5  \n",
       "1      9.8        5  \n",
       "2      9.8        5  \n",
       "3      9.8        6  \n",
       "4      9.4        5  "
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from numpy import *\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# 从硬盘读取数据进入内存\n",
    "wine = pd.read_csv(\"/home/fonttian/Data/dataset/wine/wine.csv\")\n",
    "wine.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T07:38:48.579178Z",
     "start_time": "2019-07-19T07:38:48.571221Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fixed acidity</th>\n",
       "      <th>volatile acidity</th>\n",
       "      <th>citric acid</th>\n",
       "      <th>residual sugar</th>\n",
       "      <th>chlorides</th>\n",
       "      <th>free sulfur dioxide</th>\n",
       "      <th>total sulfur dioxide</th>\n",
       "      <th>density</th>\n",
       "      <th>pH</th>\n",
       "      <th>sulphates</th>\n",
       "      <th>alcohol</th>\n",
       "      <th>quality</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>7.4</td>\n",
       "      <td>0.700</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.076</td>\n",
       "      <td>11.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>0.99780</td>\n",
       "      <td>3.51</td>\n",
       "      <td>0.56</td>\n",
       "      <td>9.4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7.8</td>\n",
       "      <td>0.880</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.098</td>\n",
       "      <td>25.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>0.99680</td>\n",
       "      <td>3.20</td>\n",
       "      <td>0.68</td>\n",
       "      <td>9.8</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.8</td>\n",
       "      <td>0.760</td>\n",
       "      <td>0.04</td>\n",
       "      <td>2.3</td>\n",
       "      <td>0.092</td>\n",
       "      <td>15.0</td>\n",
       "      <td>54.0</td>\n",
       "      <td>0.99700</td>\n",
       "      <td>3.26</td>\n",
       "      <td>0.65</td>\n",
       "      <td>9.8</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11.2</td>\n",
       "      <td>0.280</td>\n",
       "      <td>0.56</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.075</td>\n",
       "      <td>17.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>0.99800</td>\n",
       "      <td>3.16</td>\n",
       "      <td>0.58</td>\n",
       "      <td>9.8</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>7.4</td>\n",
       "      <td>0.700</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.076</td>\n",
       "      <td>11.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>0.99780</td>\n",
       "      <td>3.51</td>\n",
       "      <td>0.56</td>\n",
       "      <td>9.4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1594</th>\n",
       "      <td>6.2</td>\n",
       "      <td>0.600</td>\n",
       "      <td>0.08</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.090</td>\n",
       "      <td>32.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>0.99490</td>\n",
       "      <td>3.45</td>\n",
       "      <td>0.58</td>\n",
       "      <td>10.5</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1595</th>\n",
       "      <td>5.9</td>\n",
       "      <td>0.550</td>\n",
       "      <td>0.10</td>\n",
       "      <td>2.2</td>\n",
       "      <td>0.062</td>\n",
       "      <td>39.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>0.99512</td>\n",
       "      <td>3.52</td>\n",
       "      <td>0.76</td>\n",
       "      <td>11.2</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1596</th>\n",
       "      <td>6.3</td>\n",
       "      <td>0.510</td>\n",
       "      <td>0.13</td>\n",
       "      <td>2.3</td>\n",
       "      <td>0.076</td>\n",
       "      <td>29.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>0.99574</td>\n",
       "      <td>3.42</td>\n",
       "      <td>0.75</td>\n",
       "      <td>11.0</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1597</th>\n",
       "      <td>5.9</td>\n",
       "      <td>0.645</td>\n",
       "      <td>0.12</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.075</td>\n",
       "      <td>32.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>0.99547</td>\n",
       "      <td>3.57</td>\n",
       "      <td>0.71</td>\n",
       "      <td>10.2</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1598</th>\n",
       "      <td>6.0</td>\n",
       "      <td>0.310</td>\n",
       "      <td>0.47</td>\n",
       "      <td>3.6</td>\n",
       "      <td>0.067</td>\n",
       "      <td>18.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>0.99549</td>\n",
       "      <td>3.39</td>\n",
       "      <td>0.66</td>\n",
       "      <td>11.0</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1599 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      fixed acidity  volatile acidity  citric acid  residual sugar  chlorides  \\\n",
       "0               7.4             0.700         0.00             1.9      0.076   \n",
       "1               7.8             0.880         0.00             2.6      0.098   \n",
       "2               7.8             0.760         0.04             2.3      0.092   \n",
       "3              11.2             0.280         0.56             1.9      0.075   \n",
       "4               7.4             0.700         0.00             1.9      0.076   \n",
       "...             ...               ...          ...             ...        ...   \n",
       "1594            6.2             0.600         0.08             2.0      0.090   \n",
       "1595            5.9             0.550         0.10             2.2      0.062   \n",
       "1596            6.3             0.510         0.13             2.3      0.076   \n",
       "1597            5.9             0.645         0.12             2.0      0.075   \n",
       "1598            6.0             0.310         0.47             3.6      0.067   \n",
       "\n",
       "      free sulfur dioxide  total sulfur dioxide  density    pH  sulphates  \\\n",
       "0                    11.0                  34.0  0.99780  3.51       0.56   \n",
       "1                    25.0                  67.0  0.99680  3.20       0.68   \n",
       "2                    15.0                  54.0  0.99700  3.26       0.65   \n",
       "3                    17.0                  60.0  0.99800  3.16       0.58   \n",
       "4                    11.0                  34.0  0.99780  3.51       0.56   \n",
       "...                   ...                   ...      ...   ...        ...   \n",
       "1594                 32.0                  44.0  0.99490  3.45       0.58   \n",
       "1595                 39.0                  51.0  0.99512  3.52       0.76   \n",
       "1596                 29.0                  40.0  0.99574  3.42       0.75   \n",
       "1597                 32.0                  44.0  0.99547  3.57       0.71   \n",
       "1598                 18.0                  42.0  0.99549  3.39       0.66   \n",
       "\n",
       "      alcohol  quality  \n",
       "0         9.4        5  \n",
       "1         9.8        5  \n",
       "2         9.8        5  \n",
       "3         9.8        6  \n",
       "4         9.4        5  \n",
       "...       ...      ...  \n",
       "1594     10.5        5  \n",
       "1595     11.2        6  \n",
       "1596     11.0        6  \n",
       "1597     10.2        5  \n",
       "1598     11.0        6  \n",
       "\n",
       "[1599 rows x 12 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T07:38:48.579178Z",
     "start_time": "2019-07-19T07:38:48.571221Z"
    }
   },
   "outputs": [],
   "source": [
    "# 无量纲化\n",
    "def dimensionlessProcessing(df):\n",
    "    newDataFrame = pd.DataFrame(index=df.index)\n",
    "    columns = df.columns.tolist()\n",
    "    for c in columns:\n",
    "        d = df[c]\n",
    "        MAX = d.max()\n",
    "        MIN = d.min()\n",
    "        MEAN = d.mean()\n",
    "        newDataFrame[c] = ((d - MEAN) / (MAX - MIN)).tolist()\n",
    "    return newDataFrame\n",
    "\n",
    "def GRA_ONE(gray, m=0):\n",
    "    # 读取为df格式\n",
    "    gray = dimensionlessProcessing(gray)\n",
    "    # 标准化\n",
    "    std = gray.iloc[:, m]  # 为标准要素\n",
    "    gray.drop(str(m),axis=1,inplace=True)\n",
    "    ce = gray.iloc[:, 0:]  # 为比较要素\n",
    "    shape_n, shape_m = ce.shape[0], ce.shape[1]  # 计算行列\n",
    "\n",
    "    # 与标准要素比较，相减\n",
    "    a = zeros([shape_m, shape_n])\n",
    "    for i in range(shape_m):\n",
    "        for j in range(shape_n):\n",
    "            a[i, j] = abs(ce.iloc[j, i] - std[j])\n",
    "\n",
    "    # 取出矩阵中最大值与最小值\n",
    "    c, d = amax(a), amin(a)\n",
    "\n",
    "    # 计算值\n",
    "    result = zeros([shape_m, shape_n])\n",
    "    for i in range(shape_m):\n",
    "        for j in range(shape_n):\n",
    "            result[i, j] = (d + 0.5 * c) / (a[i, j] + 0.5 * c)\n",
    "\n",
    "    # 求均值，得到灰色关联值,并返回\n",
    "    result_list = [mean(result[i, :]) for i in range(shape_m)]\n",
    "    result_list.insert(m,1)\n",
    "    return pd.DataFrame(result_list)\n",
    "\n",
    "\n",
    "def GRA(DataFrame):\n",
    "    df = DataFrame.copy()\n",
    "    list_columns = [\n",
    "        str(s) for s in range(len(df.columns)) if s not in [None]\n",
    "    ]\n",
    "    df_local = pd.DataFrame(columns=list_columns)\n",
    "    df.columns=list_columns\n",
    "    for i in range(len(df.columns)):\n",
    "        df_local.iloc[:, i] = GRA_ONE(df, m=i)[0]\n",
    "    return df_local"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T07:44:58.673400Z",
     "start_time": "2019-07-19T07:44:54.886499Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.797338</td>\n",
       "      <td>0.848606</td>\n",
       "      <td>0.834680</td>\n",
       "      <td>0.856485</td>\n",
       "      <td>0.771742</td>\n",
       "      <td>0.804445</td>\n",
       "      <td>0.866226</td>\n",
       "      <td>0.792534</td>\n",
       "      <td>0.848224</td>\n",
       "      <td>0.781405</td>\n",
       "      <td>0.811607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.765914</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.729001</td>\n",
       "      <td>0.843650</td>\n",
       "      <td>0.873004</td>\n",
       "      <td>0.799388</td>\n",
       "      <td>0.834556</td>\n",
       "      <td>0.815033</td>\n",
       "      <td>0.858440</td>\n",
       "      <td>0.834594</td>\n",
       "      <td>0.772151</td>\n",
       "      <td>0.789429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.830478</td>\n",
       "      <td>0.739233</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.783976</td>\n",
       "      <td>0.812729</td>\n",
       "      <td>0.744378</td>\n",
       "      <td>0.768540</td>\n",
       "      <td>0.801981</td>\n",
       "      <td>0.765208</td>\n",
       "      <td>0.818265</td>\n",
       "      <td>0.770479</td>\n",
       "      <td>0.796946</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.824941</td>\n",
       "      <td>0.858308</td>\n",
       "      <td>0.794522</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.930368</td>\n",
       "      <td>0.828444</td>\n",
       "      <td>0.869884</td>\n",
       "      <td>0.856226</td>\n",
       "      <td>0.861760</td>\n",
       "      <td>0.891200</td>\n",
       "      <td>0.815316</td>\n",
       "      <td>0.822204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.824783</td>\n",
       "      <td>0.866911</td>\n",
       "      <td>0.795920</td>\n",
       "      <td>0.919391</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.823352</td>\n",
       "      <td>0.867915</td>\n",
       "      <td>0.854191</td>\n",
       "      <td>0.867162</td>\n",
       "      <td>0.902720</td>\n",
       "      <td>0.804344</td>\n",
       "      <td>0.817785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.770539</td>\n",
       "      <td>0.826189</td>\n",
       "      <td>0.767345</td>\n",
       "      <td>0.837225</td>\n",
       "      <td>0.854510</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.886327</td>\n",
       "      <td>0.802133</td>\n",
       "      <td>0.837886</td>\n",
       "      <td>0.843206</td>\n",
       "      <td>0.782054</td>\n",
       "      <td>0.802625</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.790781</td>\n",
       "      <td>0.847764</td>\n",
       "      <td>0.776790</td>\n",
       "      <td>0.868068</td>\n",
       "      <td>0.884358</td>\n",
       "      <td>0.878042</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.826921</td>\n",
       "      <td>0.846780</td>\n",
       "      <td>0.862525</td>\n",
       "      <td>0.780485</td>\n",
       "      <td>0.801496</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.855700</td>\n",
       "      <td>0.829385</td>\n",
       "      <td>0.809256</td>\n",
       "      <td>0.854202</td>\n",
       "      <td>0.872112</td>\n",
       "      <td>0.789406</td>\n",
       "      <td>0.826909</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.820644</td>\n",
       "      <td>0.852416</td>\n",
       "      <td>0.753410</td>\n",
       "      <td>0.792117</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.751682</td>\n",
       "      <td>0.851797</td>\n",
       "      <td>0.746136</td>\n",
       "      <td>0.840533</td>\n",
       "      <td>0.867179</td>\n",
       "      <td>0.804148</td>\n",
       "      <td>0.826122</td>\n",
       "      <td>0.797579</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.848358</td>\n",
       "      <td>0.810517</td>\n",
       "      <td>0.814287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.822510</td>\n",
       "      <td>0.834044</td>\n",
       "      <td>0.809752</td>\n",
       "      <td>0.879408</td>\n",
       "      <td>0.907036</td>\n",
       "      <td>0.817837</td>\n",
       "      <td>0.849960</td>\n",
       "      <td>0.839089</td>\n",
       "      <td>0.854542</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.821436</td>\n",
       "      <td>0.844837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.769539</td>\n",
       "      <td>0.791809</td>\n",
       "      <td>0.781322</td>\n",
       "      <td>0.815387</td>\n",
       "      <td>0.829551</td>\n",
       "      <td>0.771447</td>\n",
       "      <td>0.783312</td>\n",
       "      <td>0.756492</td>\n",
       "      <td>0.835010</td>\n",
       "      <td>0.838053</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.851352</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.781825</td>\n",
       "      <td>0.789293</td>\n",
       "      <td>0.788294</td>\n",
       "      <td>0.804214</td>\n",
       "      <td>0.825643</td>\n",
       "      <td>0.773377</td>\n",
       "      <td>0.785303</td>\n",
       "      <td>0.775334</td>\n",
       "      <td>0.821939</td>\n",
       "      <td>0.845216</td>\n",
       "      <td>0.836270</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           0         1         2         3         4         5         6  \\\n",
       "0   1.000000  0.797338  0.848606  0.834680  0.856485  0.771742  0.804445   \n",
       "1   0.765914  1.000000  0.729001  0.843650  0.873004  0.799388  0.834556   \n",
       "2   0.830478  0.739233  1.000000  0.783976  0.812729  0.744378  0.768540   \n",
       "3   0.824941  0.858308  0.794522  1.000000  0.930368  0.828444  0.869884   \n",
       "4   0.824783  0.866911  0.795920  0.919391  1.000000  0.823352  0.867915   \n",
       "5   0.770539  0.826189  0.767345  0.837225  0.854510  1.000000  0.886327   \n",
       "6   0.790781  0.847764  0.776790  0.868068  0.884358  0.878042  1.000000   \n",
       "7   0.855700  0.829385  0.809256  0.854202  0.872112  0.789406  0.826909   \n",
       "8   0.751682  0.851797  0.746136  0.840533  0.867179  0.804148  0.826122   \n",
       "9   0.822510  0.834044  0.809752  0.879408  0.907036  0.817837  0.849960   \n",
       "10  0.769539  0.791809  0.781322  0.815387  0.829551  0.771447  0.783312   \n",
       "11  0.781825  0.789293  0.788294  0.804214  0.825643  0.773377  0.785303   \n",
       "\n",
       "           7         8         9        10        11  \n",
       "0   0.866226  0.792534  0.848224  0.781405  0.811607  \n",
       "1   0.815033  0.858440  0.834594  0.772151  0.789429  \n",
       "2   0.801981  0.765208  0.818265  0.770479  0.796946  \n",
       "3   0.856226  0.861760  0.891200  0.815316  0.822204  \n",
       "4   0.854191  0.867162  0.902720  0.804344  0.817785  \n",
       "5   0.802133  0.837886  0.843206  0.782054  0.802625  \n",
       "6   0.826921  0.846780  0.862525  0.780485  0.801496  \n",
       "7   1.000000  0.820644  0.852416  0.753410  0.792117  \n",
       "8   0.797579  1.000000  0.848358  0.810517  0.814287  \n",
       "9   0.839089  0.854542  1.000000  0.821436  0.844837  \n",
       "10  0.756492  0.835010  0.838053  1.000000  0.851352  \n",
       "11  0.775334  0.821939  0.845216  0.836270  1.000000  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wine_gra = GRA(wine)\n",
    "# data_wine_gra.to_csv(path+\"GRA.csv\") 存储结果到硬盘\n",
    "data_wine_gra"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T07:48:33.634813Z",
     "start_time": "2019-07-19T07:48:33.629795Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fixed acidity</th>\n",
       "      <th>volatile acidity</th>\n",
       "      <th>citric acid</th>\n",
       "      <th>residual sugar</th>\n",
       "      <th>chlorides</th>\n",
       "      <th>free sulfur dioxide</th>\n",
       "      <th>total sulfur dioxide</th>\n",
       "      <th>density</th>\n",
       "      <th>pH</th>\n",
       "      <th>sulphates</th>\n",
       "      <th>alcohol</th>\n",
       "      <th>quality</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>fixed acidity</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.797338</td>\n",
       "      <td>0.848606</td>\n",
       "      <td>0.834680</td>\n",
       "      <td>0.856485</td>\n",
       "      <td>0.771742</td>\n",
       "      <td>0.804445</td>\n",
       "      <td>0.866226</td>\n",
       "      <td>0.792534</td>\n",
       "      <td>0.848224</td>\n",
       "      <td>0.781405</td>\n",
       "      <td>0.811607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>volatile acidity</th>\n",
       "      <td>0.765914</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.729001</td>\n",
       "      <td>0.843650</td>\n",
       "      <td>0.873004</td>\n",
       "      <td>0.799388</td>\n",
       "      <td>0.834556</td>\n",
       "      <td>0.815033</td>\n",
       "      <td>0.858440</td>\n",
       "      <td>0.834594</td>\n",
       "      <td>0.772151</td>\n",
       "      <td>0.789429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>citric acid</th>\n",
       "      <td>0.830478</td>\n",
       "      <td>0.739233</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.783976</td>\n",
       "      <td>0.812729</td>\n",
       "      <td>0.744378</td>\n",
       "      <td>0.768540</td>\n",
       "      <td>0.801981</td>\n",
       "      <td>0.765208</td>\n",
       "      <td>0.818265</td>\n",
       "      <td>0.770479</td>\n",
       "      <td>0.796946</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>residual sugar</th>\n",
       "      <td>0.824941</td>\n",
       "      <td>0.858308</td>\n",
       "      <td>0.794522</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.930368</td>\n",
       "      <td>0.828444</td>\n",
       "      <td>0.869884</td>\n",
       "      <td>0.856226</td>\n",
       "      <td>0.861760</td>\n",
       "      <td>0.891200</td>\n",
       "      <td>0.815316</td>\n",
       "      <td>0.822204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chlorides</th>\n",
       "      <td>0.824783</td>\n",
       "      <td>0.866911</td>\n",
       "      <td>0.795920</td>\n",
       "      <td>0.919391</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.823352</td>\n",
       "      <td>0.867915</td>\n",
       "      <td>0.854191</td>\n",
       "      <td>0.867162</td>\n",
       "      <td>0.902720</td>\n",
       "      <td>0.804344</td>\n",
       "      <td>0.817785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>free sulfur dioxide</th>\n",
       "      <td>0.770539</td>\n",
       "      <td>0.826189</td>\n",
       "      <td>0.767345</td>\n",
       "      <td>0.837225</td>\n",
       "      <td>0.854510</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.886327</td>\n",
       "      <td>0.802133</td>\n",
       "      <td>0.837886</td>\n",
       "      <td>0.843206</td>\n",
       "      <td>0.782054</td>\n",
       "      <td>0.802625</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>total sulfur dioxide</th>\n",
       "      <td>0.790781</td>\n",
       "      <td>0.847764</td>\n",
       "      <td>0.776790</td>\n",
       "      <td>0.868068</td>\n",
       "      <td>0.884358</td>\n",
       "      <td>0.878042</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.826921</td>\n",
       "      <td>0.846780</td>\n",
       "      <td>0.862525</td>\n",
       "      <td>0.780485</td>\n",
       "      <td>0.801496</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>density</th>\n",
       "      <td>0.855700</td>\n",
       "      <td>0.829385</td>\n",
       "      <td>0.809256</td>\n",
       "      <td>0.854202</td>\n",
       "      <td>0.872112</td>\n",
       "      <td>0.789406</td>\n",
       "      <td>0.826909</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.820644</td>\n",
       "      <td>0.852416</td>\n",
       "      <td>0.753410</td>\n",
       "      <td>0.792117</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pH</th>\n",
       "      <td>0.751682</td>\n",
       "      <td>0.851797</td>\n",
       "      <td>0.746136</td>\n",
       "      <td>0.840533</td>\n",
       "      <td>0.867179</td>\n",
       "      <td>0.804148</td>\n",
       "      <td>0.826122</td>\n",
       "      <td>0.797579</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.848358</td>\n",
       "      <td>0.810517</td>\n",
       "      <td>0.814287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sulphates</th>\n",
       "      <td>0.822510</td>\n",
       "      <td>0.834044</td>\n",
       "      <td>0.809752</td>\n",
       "      <td>0.879408</td>\n",
       "      <td>0.907036</td>\n",
       "      <td>0.817837</td>\n",
       "      <td>0.849960</td>\n",
       "      <td>0.839089</td>\n",
       "      <td>0.854542</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.821436</td>\n",
       "      <td>0.844837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>alcohol</th>\n",
       "      <td>0.769539</td>\n",
       "      <td>0.791809</td>\n",
       "      <td>0.781322</td>\n",
       "      <td>0.815387</td>\n",
       "      <td>0.829551</td>\n",
       "      <td>0.771447</td>\n",
       "      <td>0.783312</td>\n",
       "      <td>0.756492</td>\n",
       "      <td>0.835010</td>\n",
       "      <td>0.838053</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.851352</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>quality</th>\n",
       "      <td>0.781825</td>\n",
       "      <td>0.789293</td>\n",
       "      <td>0.788294</td>\n",
       "      <td>0.804214</td>\n",
       "      <td>0.825643</td>\n",
       "      <td>0.773377</td>\n",
       "      <td>0.785303</td>\n",
       "      <td>0.775334</td>\n",
       "      <td>0.821939</td>\n",
       "      <td>0.845216</td>\n",
       "      <td>0.836270</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      fixed acidity  volatile acidity  citric acid  \\\n",
       "fixed acidity              1.000000          0.797338     0.848606   \n",
       "volatile acidity           0.765914          1.000000     0.729001   \n",
       "citric acid                0.830478          0.739233     1.000000   \n",
       "residual sugar             0.824941          0.858308     0.794522   \n",
       "chlorides                  0.824783          0.866911     0.795920   \n",
       "free sulfur dioxide        0.770539          0.826189     0.767345   \n",
       "total sulfur dioxide       0.790781          0.847764     0.776790   \n",
       "density                    0.855700          0.829385     0.809256   \n",
       "pH                         0.751682          0.851797     0.746136   \n",
       "sulphates                  0.822510          0.834044     0.809752   \n",
       "alcohol                    0.769539          0.791809     0.781322   \n",
       "quality                    0.781825          0.789293     0.788294   \n",
       "\n",
       "                      residual sugar  chlorides  free sulfur dioxide  \\\n",
       "fixed acidity               0.834680   0.856485             0.771742   \n",
       "volatile acidity            0.843650   0.873004             0.799388   \n",
       "citric acid                 0.783976   0.812729             0.744378   \n",
       "residual sugar              1.000000   0.930368             0.828444   \n",
       "chlorides                   0.919391   1.000000             0.823352   \n",
       "free sulfur dioxide         0.837225   0.854510             1.000000   \n",
       "total sulfur dioxide        0.868068   0.884358             0.878042   \n",
       "density                     0.854202   0.872112             0.789406   \n",
       "pH                          0.840533   0.867179             0.804148   \n",
       "sulphates                   0.879408   0.907036             0.817837   \n",
       "alcohol                     0.815387   0.829551             0.771447   \n",
       "quality                     0.804214   0.825643             0.773377   \n",
       "\n",
       "                      total sulfur dioxide   density        pH  sulphates  \\\n",
       "fixed acidity                     0.804445  0.866226  0.792534   0.848224   \n",
       "volatile acidity                  0.834556  0.815033  0.858440   0.834594   \n",
       "citric acid                       0.768540  0.801981  0.765208   0.818265   \n",
       "residual sugar                    0.869884  0.856226  0.861760   0.891200   \n",
       "chlorides                         0.867915  0.854191  0.867162   0.902720   \n",
       "free sulfur dioxide               0.886327  0.802133  0.837886   0.843206   \n",
       "total sulfur dioxide              1.000000  0.826921  0.846780   0.862525   \n",
       "density                           0.826909  1.000000  0.820644   0.852416   \n",
       "pH                                0.826122  0.797579  1.000000   0.848358   \n",
       "sulphates                         0.849960  0.839089  0.854542   1.000000   \n",
       "alcohol                           0.783312  0.756492  0.835010   0.838053   \n",
       "quality                           0.785303  0.775334  0.821939   0.845216   \n",
       "\n",
       "                       alcohol   quality  \n",
       "fixed acidity         0.781405  0.811607  \n",
       "volatile acidity      0.772151  0.789429  \n",
       "citric acid           0.770479  0.796946  \n",
       "residual sugar        0.815316  0.822204  \n",
       "chlorides             0.804344  0.817785  \n",
       "free sulfur dioxide   0.782054  0.802625  \n",
       "total sulfur dioxide  0.780485  0.801496  \n",
       "density               0.753410  0.792117  \n",
       "pH                    0.810517  0.814287  \n",
       "sulphates             0.821436  0.844837  \n",
       "alcohol               1.000000  0.851352  \n",
       "quality               0.836270  1.000000  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wine_gra.columns = wine.columns\n",
    "data_wine_gra.index = wine.columns\n",
    "data_wine_gra"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T08:03:40.866126Z",
     "start_time": "2019-07-19T08:03:40.371417Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Qeapp7H+n/eCx+IaO46IzG5snz8XgKSJk0mddTRbnnqcb2++Aawl/YSTcMbE0lBUxMaH/g2A9bhJGDGK2EODe9VDERERUKtee5m2zqnY7WD/y3TfgO/cIt+2ZOBfeM9rcgLzfedFRQL3AmPxrrBssNYe3Wq/vwGuABrxFjxnWGvXG2NOBu4ENgMrgRhr7ZmtLkfeOo4LgQuB9XhXsDZYa28wxswFLrfWLmkjryTgebznLs3Dez7TMF+eVdbaGOM90eRvwEy8K0i3AC/hbdG731r7ljFmGPAEMALvuU87YhwGPAbU4C2WTrbWDjTGhPj2c4zvtSkCjrfWtn01AGBrzf/aP2EHgGe+b89C4oHjN/1qAw86gNz1TecsYH6qDdU/v6+ue2VqcL9HTURE2q3TliejXlnYKX+//OLk8Z3qNftRhZMEnwqnzk2FU+emwklERIKoUxUBLalwap+f328RIiIiIiLSbmrVa5/O8eUoIiIiIiIinZgKJxERERERkQDUqiciIiIi0oWFqFWvXbTiJCIiIiIiEoAKJxERERERkQDUqiciIiIi0oXpqnrtoxUnERERERGRAFQ4iYiIiIiIBKBWPRERERGRLsxoKaVd9DKJiIiIiIgEoMJJREREREQkALXqiYiIiIh0YbqqXvtoxUlERERERCQAFU4iIiIiIiIBqFVPRERERKQLM+rVaxetOImIiIiIiASgwklERERERCQAteqJiIiIiHRh6tRrH604iYiIiIiIBKDCSUREREREJAC16omIiIiIdGFq1WsfrTiJiIiIiIgEoMJJREREREQkALXqiYiIiIh0YWrVax+tOImIiIiIiASgFacDTEHtz+sjgdVlYcEOYZ+qbqoLdgj71JeF4cEOYZ8qLfUEO4R9KjwMhr+wINhh7FNLTp0Q7BBERETapMJJRERERKQLC/l5fS6/36hVT0REREREJAAVTiIiIiIiIgGoVU9EREREpAtTq177aMVJREREREQkABVOIiIiIiIiAahVT0RERESkCwsxNtghHBC04iQiIiIiIhKACicREREREZEA1KonIiIiItKF6ap67aMVJxERERERkQBUOImIiIiIiASgVj0RERERkS5MKynto9dJREREREQkABVOIiIiIiIiAahVT0RERESkC9MX4LaPVpxEREREREQCUOEkIiIiIiISgFr1RERERES6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EQlAhZOIiIiIiEgAatUTEREREenCDuSr6nUkrTiJiIiIiIgEoMJJREREREQkALXqiYiIiIh0YVpJaR+9TiIiIiIiIgGocBIREREREQlArXoiIiIiIl2YvgC3fbTiJCIiIiIiEoAKJxERERERkQDUqiciIiIi0oXpC3DbRytOIiIiIiIiAahwEhERERERCUCtegeYW5bFBzuEfSonsT7YIexTy7f/vP5JpUa7gx3CPtXU+PP6rOjfk8qCHcI+9f6WcO5Y/mGww9inrhp8RLBDEBEJSK167fPz+i1CRERERERkP1DhJCIiIiIiEsDPq69IRERERER+FK2ktI9eJxERERERkQBUOImIiIiIiASgVj0RERERkS4sxNhgh3BA0IqTiIiIiIhIACqcREREREREAlCrnoiIiIhIF6YvwG0frTiJiIiIiIgEoMJJREREREQkALXqiYiIiIh0YVpJaR+9TiIiIiIiIgGocBIREREREQlArXoiIiIiIl2YrqrXPlpxEhERERERCUCFk4iIiIiISABq1RMRERER6cKMscEO4YCgFScREREREZEAVDiJiIiIiIgEoFY9EREREZEuTFfVax+tOImIiIiIiASgwklERERERCQAteqJiIiIiHRhWklpH71OIiIiIiIiAahwEhERERERCUCteiIiIiIiXViIvgC3XVQ4dUGVq1ay7eXnwXpwjZ1AypGz/La7a2vY8vh/aSwtwXo8JE+bjmvMeO+2mhrynn2Suq15GKDb/51FVJ++Qchip7xlq1jy5CtYj4eDpo5j4HHT/bY31NSy8IEnqCkuxeNxc8jR0zho8hjcDY3MvvEePI1NeDxueo3KYfAvjg5SFjvlLl7D/x58Deu2jJg5msmnTPPbXlddywt3PkNZYSket4eJJ09h+JGjAHj578+x9ovVxCTEcMnDVwUj/F1UrlrJ1pde8L7fxk0g9ciZftvdtTVsfvxRGktKsB43ydOOJHHsOADWXnsVIRERmBCDCXFw0NXXBSMFP6PSErh4UB8cxvC/DQU8/e0Wv+3RTgfXj8gmLTIcRwg8/10e72wspGdMJDeNzG4e1y06gkdWb+KldVs7OgU/yz5fyxP3voHH7WHqMaM4/ozD/ba/9ewcFn7wNQDuJg95Gwv477s3ERMXxbsvzufjt74ALFOPHc1Rp0wMQgb+tixbzRePe48H/Q8f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EREREZEuzKFWvXbRipOIiIiIiEgAKpxEREREREQCUKueiIiIiEgXpqvqtY9WnERERERERAJQ4SQiIiIiIhKAWvVERERERLqwEGODHcIBQStOIiIiIiIiAahwEhERERERCUCteiIiIiIiXZiuqtc+WnESEREREREJQIWTiIiIiIhIAGrVExERERHpwhzBDuAAoRUnERERERGRAFQ4iYiIiIiIBKBWPRERERGRLkxX1WsfFU4HmCcnuoMdwj51zqehwQ5hn7rssKhgh7BPzdlWH+wQ9qmimp9XF3dh3c+raeDn9h/3hPQGPit8J9hh7FNjUo8KdggiIkHz8/pfV0REREREZD/QipOIiIiISBcWYmywQzggaMVJREREREQkABVOIiIiIiIiAahVT0RERESkC3P8zC7Os79oxUlERERERCQAFU4iIiIiIiIBqFVPRERERKQL+7l9j97+ohUnERERERGRAFQ4iYiIiIiIBKBWPRERERGRLkyteu2jFScREREREZEAVDiJiIiIiIgEoFY9EREREZEuTK167aMVJxERERERkQBUOImIiIiIiASgVj0RERERkS7MYWywQzggaMVJREREREQkABVOIiIiIiIiAahVT0RERESkC9NKSvvodRIREREREQlAhZOIiIiIiEgAatUTEREREenC9AW47aMVJxERERERkQBUOImIiIiIiASgVj0RERERkS5MrXrto8KpC1q0cCV33/ESbreH408az1m/m+G3/anHZvPeO18C4HZ7WP/DNj5a8Hfi46M5evo1REWH4wgJweEI4ZmXrg1GCn7KV65k80svgsdD8vjxpM+Y6bfdXVvD+kcfo6G0BOt2k3bEdJLHjQNgxTVXExIejgkJwYQ4GHBt8PP5dMEK/nbHc3jcHk44aSK//f1RftufeOw93n37M2DH/GxlzoL7iU+IYeYRlxMdHUFISAhOp4PnXro+GCn4KfpmFWufewnr8dB94jj6HO3/fmusqWXFQ49RW1KCdXvoPfMIuk0Y27zdejx8dsPtRLgSGHrJHzs6/F2MTEnggkP7EGLgnU0FPLcuz297tNPBdTn9SY0Mx2EML67L470thfSIjuT6of2bx2VGRfDYt5t4Zf22jk5ht1Z/uYZXH3gdj8cyZtYopp82zW97bVUtT932DCWFZXjcbg7/5RRGzxwVpGjbtmXpaj5//BU8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ivmblvnljcPh8Af+BRwP9Ab+5HA4ejdodiWQ7nQ6+wHjgMccDkebJj7WgxInERERERE5Eg0FfnE6nVudTmcl8A5wSoM2NhDmcDgMEArkAtVNfKwHJU4iIiIiInIkag/sqnd7d8199T0LHAPsBdYDf3c6nVYTH+tBn3ESEREREWnF/Izt6y40yuFwXApcWu+uF51O54v1bjdW0NcwmKnAGmAC0A341uFwLGriYz0ocRIRERERkRanJkl68RBNdgMp9W53wL2zVN9FwEyn02kDvzgcjm1AryY+1oMSJxERERERORItB3o4HI4uwB7gHOD/NWizE5gILHI4HAmAA9gK5DfhsR6UOImIiIiItGJH6h/AdTqd1Q6H4ypgDu5Lir/idDrTHA7H5TXHXwDuBV5zOBzrcZfn3ex0OrMBGnvsoX6eEicRERERETkiOZ3OL4EvG9z3Qr3v9wJTmvrYQ9FV9URERERERLzQjpOIiIiISCt2pJbqNTftOImIiIiIiHihHacjzMs/V/q6C4dVp1B/X3fhsPpiV5mvu3BYLd7WztddOKxytpb6uguH1a4eR9f8WZfXxtddOKz2lx1d47OzJABY6OtuHFbvTxjj6y6IyBFEiZOIiIiISCumErSm0eskIiIiIiLihRInERERERERL1SqJyIiIiLSihldVa9JtOMkIiIiIiLihRInERERERERL1SqJyIiIiLSiqlSr2m04yQiIiIiIuKFEicREREREREvVKonIiIiItKK6ap6TaMdJxERERERES+UOImIiIiIiHihUj0RERERkVZMOylNo9dJRERERETECyVOIiIiIiIiXqhUT0RERESkFTPG9nUXjgjacRIREREREfFCiZOIiIiIiIgXKtUTEREREWnF9Pdvm0Y7TiIiIiIiIl4ocRIREREREfFCpXoiIiIiIq2YUa1ek2jHSURERERExAslTiIiIiIiIl6oVE9EREREpBVTpV7TaMdJRERERETECyVOIiIiIiIiXqhUrxXauSqdxa98gGVZ9J40nIGnTfE4XlFSxndPzaI4KxfLsug/fSLHTEylKDuPuU+/QWleIcbP0HvySPqdNM43QdSzf20a6954D9uy6TxuBI7pUz2OV5WWsfy5VynLycNyWfQ4cRKdxw7HVVnFwnsfx6quxnJZtB86gN5nnOSjKOr8vGIjXzz/IZZlMXha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cwDYlovIIcOIP/73jQ/A+xPG/O7nEPkNWmAq4Jae/3mLTAh6R57Uol6zozVxmgo8AlhAFfBXIBh4GcgAfsSdCDWWOOUBg4EE4Drbtj9veDnyXxMn27a/r3nMMNxlfRXApzWJ09+AK4F9tm2PN8ZMwP05q1/rfP4BLAc+wb1LZWqe8/VDxXY4EqeW5HAkTi3J4UicWpLDkTi1JIcjcWpJDkfi1JIcjsSpJTkciVNLcjgSp5ZGiZM0sxaVBNSnxKlpjr5VELBtew4wp5FDB3yK1Lbt14DX6t31g23b1x6qjW3bJ9X7/sKD9OEZ4Jl6t+cBQxppOrSxx4uIiIiINIcWlZ20YEflZ5xEREREREQOp6Nyx+l/dbDdIxERERERad2UOImIiIiItGIq1WsaleqJiIiIiIh4ocRJRERERETEC5XqiYiIiIi0Yn6q1WsS7TiJiIiIiIh4ocRJRERERETEC5XqiYiIiIi0YqrUaxrtOImIiIiIiHihxElERERERMQLleqJiIiIiLRixti+7sIRQTtOIiIiIiIiXihxEhERERER8UKleiIiIiIirZiuqtc02nESERERERHxQomTiIiIiIiIFyrVExERERFpxYxq9ZpEO04iIiIiIiJeKHESERERERHxQqV6IiIiIiKtmHZSmkavk4iIiIiIiBdKnERERERERLxQqZ6IiIiISCumq+o1jXacREREREREvFDiJCIiIiIi4oWxbdvXfZDfYF/pZ0fVgO0rPbpy99DAo2p4WJoZ6OsuHFa7iv193YXD6sKeZb7uwmFVVHV01Yq0b9fW1104rO5fc3St11XW0XW+ATw+bIKvuyCH1mJPup3FLfP9ZcfQk1vUa3Z0rYIiIiIiIiJ/ACVOIiIiIiIiXuiqeiIiIiIirZiuqtc02nESERERERHxQomTiIiIiIiIFyrVExERERFpxVSp1zTacRIREREREfFCiZOIiIiIiIgXKtUTEREREWnF/FSr1yTacRIREREREfFCO04iIiIiIq2YNpyaRjtOIiIiIiIiXihxEhERERER8UKleiIiIiIirZgxtq+7cETQjpOIiIiIiIgXSpxERERERES8UKmeiIiIiEgrpqvqNY12nERERERERLxQ4iQiIiIiIuKFSvVERERERFoxo1q9JtGOk4iIiIiIiBdKnERERERERLxQqZ6IiIiISCumSr2m0Y6TiIiIiIiIF0qcREREREREvFCpnoiIiIhIK6adlKZR4tQK/fjDJp595BNclsWJpw7j3IsneBx/5/X5fPvlagBcLhc7t2Xy8by7yc8r5u6b36xtt29PDhf9dSpnnjumWfvf0JplG5n15MdYlsX4k1M55fyJHsc/e2seP3yzCgCXy2LPjgxe/OIeQsPb8dW7C5n36TJs22bC9FROOHusL0LwsHLpJv7zmDueyacM48wLPOP58I35fP91XTy7t2fw5px7CIsI4eO3F/DNJz9ijKFz90T+fsc5tGkb6Iswam1Zmc63L36IbVn0mzKcEWdO9jheXlLGp4/OojArD8uyGDZjAv0mp1KYlcenj79BSV4Rxs/Qf+oIhp4yzjdB1LNnTRorXn8f27LoPmEkx54yxeN4ZWkZi599jdLsPCzLRe+TJtF93HBclVXMufsJrKpqLMtFp2ED6HfmST6Kos5PP2ziX49+guWyOGHGMP50ked6MPv1+cz9ynM9+GDu3RTkFXPvLZ7rwYWXT+V0H68Hq5Zu4qXHa+bP9GGc3mD+fPTGfBbMcc8fq2b+vP61e/58+t8FfFszfzp1S+RvLWD+LFmczmMz38dyWZxy+ggu/Ivn+fbGK9/x1RfLAfd6sH3rfr5ZNJOIiHYUFZZy311vs+WXfRjgjnvPpW//rj6Iok7G2jTWv/EetmXTadwIek6f6nG8qrSMFc+/SllOHrbLovsJk+g0dnjtcduy+P6OmQRFRTL8hiuau/sHyFyXRvqb72JbNiljR9L95APjWfPCq5Tl5GJbFl2Pn0TKmBG1x23LYvGdDxIUFcmQ669s7u6LyG+kxMkLY8x2YLBt29m/8XGvAZ/btv1+E9t3rml/7G/s4m/iclk8NfMjHn3+UuISIrj83KcYObY3nbsl1rY554LxnHPBeACWLEjjvbcWEh4RQnhECC/Pvq72ec6Yei+jx/+h3fXKclm8+tiH3Pbk5cTER3D7X55g0Kg+dOhSF8/J507g5HPdbwZXLk7jy9kLCA1vx66t+5j36TLue+kaAgL8mXn9iwwY0ZuklDhfhYPLZfHCwx9y77OXERMfwXUXPMmw0X3o2LUuntPOH89p57vH56dFaXzy9kLCIkLIySzgs9mLeW72TbQNCmTmrbNY+O1qJp001FfhYLks5jz/Hn+670rCYyJ59dpH6THsWOI6JtW2WfnFImI7JnLWXZdRUlDEvy+7n2PHDcbP349Jl8wgsXsKFaXlvHrNI3QZ4PB4bLPHY1n89Mq7TLr9b4TERPLVbQ/TYdBxRHao65NzzgIi2ycx4aa/Ul5YxCfX3kOXUUPwCwxg8h1XExgUhFXt4uu7HiO5fx/ienTxWTwul8XTD33Ew8+514MrznuK4WN707ne+Xb2BeM5u9568EG99eDFd+rWg7On3csoH68HLpfFvx/5kLufcc+fGy98kqGj+5BSL54Z549nRr3589l/6+bP57MX88w77vnz8G2zWPTtaib6cP64XBYP3/cuz/7nKhISI7ng7EcYM/44unarO9/Ov3gS5188CYCF36/nv7PmExHRDoDHZr7P8JG9eeiJv1BVVU15WaVP4viVbVmsfX02I2+5muDoSL6/8yESB/UlvH1dPFu/XUB4+ySGX38FFYVFfHfj3aSMHIJfgPvtypav5xOWnEhVWbmvwqhlWxZps95h2E1XExQdxeK7ZpIwsC9h9eLZ8d33hLZPYsh17ngW3PxP2o8YWhvPtjnzCE1OpLoFxCMi3mlnrpXZtGEn7VNiSO4QQ2BgABOm9ueH79MO2n7u12uYOG3AAfev+mkz7TvEkJgc/Ud216tfNu4ksUMsCe1jCAgMYPjEAaxYtOGg7Zd8t4oRk93x7NmeQY8+nWgb1Ab/AH+O6d+N5QvXN1fXG7U5bSdJHWJIbO8enzFTBvDjwoOPz4I5qxkztW58LJeLyooqXNUuKsoriY6NaI5uH9Ten3cQlRRHVGIs/oEB9B4zkM3LPF9jA1SWVWDbNlVllQSHheDn70dodASJ3VMAaBsSRExKAsU5BT6Iok7OL9sJS4wjLCEW/4AAOo0YxK4V6zwbGUNVebk7nvIK2oaG4OfnhzGGwKAgwD1OtsvyQQSeNm3YSfsOdevB+Kn9WXKI9WD+nDVMaGQ9WP3TZpI7xJDg4/Vgc7rn/Bk1+dDzZ9E3qxk9pS4eV735U9kC5k/a+u2kdIylQ0osgYEBTD5+IAvmrTto+2++XMGUEwYBUFxcxuqVWzjldPduTWBgAGHhIc3S74PJ27Kd0IQ42sXH4hcQQIfUQexfudajjTFQXeaeP9XlFbRp1w7j536rUpaTx/41G+g0bqQvun+A/C3bCYmPIyQ+Dr+AAJJTB5OxyjMejKmNx1VRQWD9eHLzyFy7gZQWEo+0bsa0zK+WRolTPcaYj40xK40xacaYSxs5/mdjzDpjzFpjzBs193UyxsytuX+uMaZjvYeMMcYsMcZsNcacUdPeGGMeMcZsMMasN8ac3UzhAZCVWUBcQmTt7biESLKyGn8zWl5WyU9LNjFmYt8Djs2bs4YJ0/r/Yf1sqrysAmLi6+KJiY8k7yDxVJRXsnbZJoaNc8eT0jWJjWu3UlRQQkV5JWuWbiQnI79Z+n0wOVkFxCbUjyeCnIONT3klq5ZtYsT4vrVtZ5w3joun38ufT7ibdqFBDEx1NEu/D6YoJ5/wuLp4wmIjKWqQ/Aw6aQzZu/bz9J/v4D9XPcjkS0+vfWPxq/yMHDK27iHZ0alZ+n0wpbn5tIuJqr3dLjqSslzPc6bX1LEU7NnPB3+9jc9vvJ/BF5xZG49lWXx+8wO8d+nNJB3Xy6e7TQDZWQXEJdZbD+Ijyc48+HqwfMkmRjeyHsyfs4YJU32/HuRmHjh/cg+xHqxetonh9ebPqeeO4/9OuZeLTrybkNAgBvh4/mRlFpCQWHe+JSREkXWI8Vm6eCMTJrvHYc/uHCKjQrn7H29y7hkzue/OtygrrWiWfh9MWV4+wdF18QRFR1GW5xlPl8njKNq7n6+vupV5t97PceefUTt/1r/5Psf+aUaLeTdVnpdPcIxnPOV5nutB50njKN63n7lX38LC2+6j93l160H6W+9xzNkzMEZvxUSOFJqtni62bXsQMBi42hgT8+sBY0wf4HZggm3b/YC/1xx6Fphl23Zf4C3g6XrPlwSMAk4CZtbcdxrQH+gHTAIeMcb4rvYIMAe5ev+Shekc278z4RGev6WsqqrmhwVpjJvcrzm6d0i2bR9450H+U121OA1H3y6EhrvLWNp3TmD6ueN54JoXmHndi3Tsnoy/v2+nRKPhHKTt8kVpHNO3C2E141NcWMqPC9J46ePbef3Luygvq2T+Vyv/uM7+rxqMz9ZVG0no2oGrZ93LJU/fzJwX3qOitKz2eGVZBR8+8DKT/u802oYEN3dvvWsQz9616UR16sDpzz/AiQ/dyk+vvktlTTx+fn6c9NBtnP7c/WRv2U7err2+6HGdRqdP42fc0oXp9OnX+HqwZGEaY1rCetDYnQeZQMsXpdGrwfz5aWEa//7odl75wj1/vvfx/GlsfTtYzrDw+/X0HdC1tkzPVe3CuXEXZ5w9mrfev4Wg4La89vK3f2R3vWt0gDxlrk8nolMK0559kPH338q6We9SVVrG/tXraRseSmSXjt6fpNk0FpDnAGWtTyeiYwcmPj2T0ffdRtqs2VSVlZGxej1twsKI6OLbXwaJyG+jxMnT1caYtcAyIAXoUe/YBOD9Xz/rZNt2bs39w4G3a75/A3ei9KuPbdu2bNtOBxJq7hsF/Ne2bZdt2xnAAmDIoTpljLnUGLPCGLPizVe+/h3hQVx8BFn1dlWyMvKJjQtvtO28OY2X6f24eBM9e3UgOibsd/XlcIiOjyQnsy6enMx8omIbj2fJ3NWMmOQZz/iTU3nw1eu567mrCA0PIdGHn28CiI2PIDujfjwFRMc1Xi608Js1jKlXZrTmp80kJEcTERVKQIA/I8b3ZeO67X90lw8pLCaSwqy6eIqy8wmL9hyfdd/9iGN4P4wxRCfHEZkQQ86uTMD95u+DB16mz7jB9Brh+zfmIdGRlOTk1d4uyc0nOMpzfLYsWEbHof0xxhCeGE9ofAyFezM82rRpF0JC7x7sXZPeLP0+mNj4CLL211sPMvOJOch6MP+bxsv0fvphEz1ayHoQ09j8OUi53aJv13iU6a1dvpn4evNn+Pi+bFq//Y/u8iHFJ0SSsb/ufMvIyCP2IOvBt1+tZGpNmR5AfGIU8QmRHNu3MwATp/THmb7rD+2vN8HRkZTl1sVTnpt3wPzZuWApSYPd8yc0MZ6QuBiK92WQ8/MW9q1az5xr/sGKf71CdrqTFc+92twheAiKiqIsxzOeoAbx7Fq0lMSaeNoluOMp2ZtB3uYtZK5ex7zrbmf1cy+TvdHJ6hd8G4+0dqaFfrUsSpxqGGPG4d4BGl6zo7QaCKrfhCb9vsyj/lVdbwAAIABJREFUTf26CNPg3yazbftF27YH27Y9+LyLp/3Wh3tw9Elh985s9u3Joaqqmnlz1jBiXJ8D2hUXlbF25RZGNnLM/bkn35flAHTrlcL+3Vlk7s2huqqapXNXM2jUgR9QLy0uY+PqLQwa7XmsIK8IgOz9eSxfsP6AxKq59eidwt5d2eyvGZ+F36xm6OgDx6CkuIwNq7eQOrbuWFxiJJs27KC8vBLbtlm7fDMpneObs/sHSO7Zkby9WeTvz8FVVU36wlX0GHacR5vwuCi2r3UCUJxXSM7uTCITY7Btmy+eepvYlASGzZjQ2NM3u5hunSjan0lRZjau6mp2LFlJyiDPeNrFRLF/gzuesvxCCvdmEBofS3lhEZUlpQBUV1ayf72TiOSEA35Gc+rVJ4U9u+rWg/lz1jBibOPrwbqVWxpdK+Z93TLK9AB6HJPCvl3ZZOx1x7P429UMHdP4/ElbvYVh9Y7FJUTy84YdVNTMn3XLN9PBx/On97Gd2Lkziz27s6mqqubbr1YxZvyBpZLFRWWsWvELY+sdi40NJyExiu3b3En78mVOutS7CJAvRHbtRPH+TEoys7Gqq9m9bCWJAz3jCY6NJittEwDlBYUU78sgJD6WPmefyrRnHmDqk/cx+MqLie3tYPAVF/kijFoRXTtRkpFJaZY7nr3LVpAwoEE8MVFkp7nXg4qCQor3u+PpddapTHzqQSY8fj8DrriE2GMcDLjct/GIiHe6ql6dCCDPtu1SY0wvILXB8bnAR8aYJ2zbzjHGRNfsOi0BzsG923QusNjLz1kIXGaMeR2IBsYAN+KZpP1hAgL8+fvNM7jxiv9gWTbHnzKELt0S+eS9JQCccqb7MqmL5m9gcKqD4OC2Ho8vL6tk5Y8/c/0/Tm+O7nrlH+DPhdeexoPXvYjlshh30lBSuiby7UfueCbPcMezfMF6+g51ENQgnidue43iwlL8A/y46PrTCPXxh6f9A/y5/MbTuOvqF7Esm0knD6VTt0S++sAdz/Gnu+NZ+v16BgzzjMdxbCdGTuzLNec/jr+/P10d7Zk2Y3ijP6e5+Pn7M+XyM3jnzuewLIt+k1OJ65TEqi/d02TgCaMYdc40Pn/yTf5z5YPYNky4aDohEaHsStvChvnLieuczEt/ewiAcX8+ie5DDnwj3JzxDL3oLOY+8C/35cjHDycyJZmfv10EQM/JoznutONZ8vwbfHbj/di2zcD/dypB4aHk7djDD8/PwrYsbMum8/CBdGiQdDU3/wB//nbzDG6+smY9mD6Ezt0S+ex99/l28hnu823x/A0MOsR6cO3tLWc9+L8bTuPuq1/EVTN/OnZN5OsP3fFMO80dz7Lv19O/wXrQ89hOjJjQl+v+7J4/XXq2Z+qpvp0/AQH+3HTbWVx92b9wuWymz0ilW/ckPpjtPt9OP3s0APPnrmXYiF4Eh3iOzw23ncmdN79GVZWL9imx3Hnvec0eQ31+/v70veBsljz8LLZl0WnscMI7JLNt7kIAukwcg+PU41n171nMu+U+bGz6nH0qbcNCfdrvg/Hz9+fYP5/DTw8/g21bdBgzgrAOyeyY546n04Qx9DjlBNb+ZxYLb7sX27bpddYM2rTQeETEO9PoZ0RaIWNMW+BjoD3gBOKAfwKvUXM5cmPMBbiTHBew2rbtC2suI/4KEAtkARfZtr2z4eXIjTHFtm2HGvcHCB4Gjse9O3Wfbduzm3o58n2lnx1VA7av9Oja9AwNPKqGh6WZvv0bNofbrmJ/X3fhsLqwZ5n3RkeQoqqWV5bxe7Rv19Z7oyPI/WuOrvW6yjq6zjeAx4e1jN15OagWe9LlVXzeIt/ARLU9qUW9ZtpxqmHbdgXuZKahzvXavA683uBx23F//qnh813Y4HZozb827uTrxkaex7d/BEVERERERBp1dP36SERERERE5A+gHScRERERkVZMf0+safQqiYiIiIiIeKHESURERERExAuV6omIiIiItGot6uJ1LZZ2nERERERERLxQ4iQiIiIiIuKFSvVERERERFoxo1K9JtGOk4iIiIiIiBdKnERERERERLxQqZ6IiIiISKumUr2m0I6TiIiIiIiIF0qcREREREREvFCpnoiIiIhIK2aM9lKaQq+SiIiIiIiIF0qcREREREREvFCpnoiIiIhIq6ar6jWFdpxERERERES8UOIkIiIiIiLihUr1RERERERaMaNSvSbRjpOIiIiIiIgXSpxERERERES8UKmeiIiIiEgrplK9ptGOk4iIiIiIiBdKnERERERERLxQqZ6IiIiISKumvZSmUOJ0hCmqOrpqUP39bF934bAqc/m6B4dXQrDl6y4cVhllR9d/DEfX7AHrKAsor6Lc1104rDq0a+vrLhxW63Pb+LoLh1VkG4ubfprn624cVg8PneDrLoh4UOIkIiIiIiJHJIfDMQ14CvAHXnI6nTMbHL8ROLfmZgBwDBDndDpzHQ7HdqAIcAHVTqdz8KF+lhInEREREZFWzJgjs6LJ4XD4A/8CJgO7geUOh+NTp9OZ/msbp9P5CPBITfuTgWudTmduvacZ73Q6s5vy846uuhUREREREWkthgK/OJ3OrU6nsxJ4BzjlEO3/BPz3f/1hSpxERERERORI1B7YVe/27pr7DuBwOEKAacAH9e62gW8cDsdKh8NxqbcfplI9EREREZFWrWWW6tUkM/UTmhedTueL9W431vGDXWroZOCHBmV6I51O516HwxEPfOtwODY5nc6FB+uPEicREREREWlxapKkFw/RZDeQUu92B2DvQdqeQ4MyPafTubfm30yHw/ER7tK/gyZOKtUTEREREZEj0XKgh8Ph6OJwONrgTo4+bdjI4XBEAGOBT+rd187hcIT9+j0wBdhwqB+mHScRERERkVbMtNBSPW+cTme1w+G4CpiD+3LkrzidzjSHw3F5zfEXaprOAL5xOp0l9R6eAHzkcDjAnRO97XQ6vz7Uz1PiJCIiIiIiRySn0/kl8GWD+15ocPs14LUG920F+v2Wn6VSPRERERERES+04yQiIiIi0qppL6Up9CqJiIiIiIh4ocRJRERERETEC5XqiYiIiIi0YkfqVfWam3acREREREREvFDiJCIiIiIi4oVK9UREREREWjFjVKrXFNpxEhERERER8UKJk4iIiIiIiBcq1RMRERERadVUqtcU2nESERERERHxQomTiIiIiIiIFyrVExERERFpxYz2UppEr5KIiIiIiIgXSpxERERERES8UKmeiIiIiEirpqvqNYV2nERERERERLzQjlMrtHLpJv7z2MdYlsXkU4Zx5gUTPY5/+MZ8vv96FQAul8Xu7Rm8OecewiJC+PjtBXzzyY8YY+jcPZG/33EObdoG+iKMWmuWbuLVJz/GcllMnD6MU//sGc+nb85n0TfueKyaeF7+8h5CI0L4cvZC5n76I7ZtM3F6KieeM8YXIXg42uKpb+NPG/nwXx9iWTapJ6Qy+U+TPI6XFZfxxoNvkpeZh+WyGH/WeFKnDfNRbxu3e3U6y159H8uycEwcQb8ZUzyOV5aU8f0zr1OSnYflcnHc9In0HD+c6soqvrjzSazqaiyXiy6pAxh49ok+iqLOTz9s4rlHP8FyWRw/Yxh/umiCx/HZr89n3lerAXC5XOzclsn7c++mIK+Y+255s7bdvj05XHD5VE4/17fn3Kqlm3jlCff6Nmn6ME5rMH8+fnM+C+fUrW97tmfw6lfu9e3z2Qv59pMfwbaZdEoqJ7eA+bN8ySaerxmfaacO45wG4/PuLM/x2bUtk3e/u5vwiBA+eGshX3/8Ixjo0j2JG+462+fr9Y5V6Sx6+QNsy6L3pOEMOt1z/lSUlPHtk7Moys7Fdln0P2UivSemUpSdx3dPvUFpXiHGz9Bn8kj6nTzON0HUk7t+A7/8911s2yJp9Cg6njDN43h1aRkbX3qZipw8bMtFytTJJI4aCcCym24jIKgt+Plh/PwYdOftvgjBQ8a6NNa/8S5YNh3HjaTnyVM9jleVlrHy+Vcpy8nFtiy6nTCJTmNG1B63LYsFdz5IUFQkqddf2dzdF/nDKXH6AxhjOgOf27Z9rDFmMPBn27avNsaMAypt217iq765XBYvPPwh9z57GTHxEVx3wZMMG92Hjl0Ta9ucdv54Tjt/PAA/LUrjk7cXEhYRQk5mAZ/NXsxzs2+ibVAgM2+dxcJvVzPppKG+CgfLZfHyYx/yj6fc8dx68ZMMHt2HDl3q4pl+3nimn+eOZ8WiNL6YvZDQiBB2btnH3E9/5IGX/05AgD8PXPsfBo48hqSUOF+Fc9TFU5/lsnjv6fe54uG/EhkXyWNXPM5xw48lsXNdbIs+WUxipwQuvf//KM4v5v4LH2DwxEEEBLaMpcpyWSx5+V2m3XEV7aIj+fTWR+g4+DiiUpJq26TPWUhkh0Sm3HI5ZQVFvP/3e+k2agj+gQGccNfVBAa3xap28fkdj9NhQG/ie3bxWTwul8UzD33EQ89dSlxCBFee9xQjxvamU7314OwLxnP2Be7zbemCND54ayHhESGER4Tw73euq32ec6bdy6jxx/okjl+5XBb/efRD7nraPX9uuuhJhozuQ0q9+XPqeeM5tWb+LF+UxmfvuNe3HVv28e0nP/LwK+75c+81/2HQiGNI7ui7+eNyWTw78yNmPncpsQkR/O38pxjeYHzO+vN4zvpzzfgsTOPDmvHJzizg43cW8dJ77vX6vptn8f2cNUyZPsRX4WC5LBa8+B6n/PNKQmMiefemR+gy9Dii682f9V8tJDolkZNuv4yygiLevOo+HGMG4+fnx8gLZxDfLYXKsnJmX/8wKf0dHo9tbrZlsfmt/9L3+mtoGxXFqnsfJKZ/X9olJ9e22TN/Pu2Skjju6quoLCpi+W13Ep86DL8A95rW78brCQwL9VUIHmzLYt3r7zDi5qsJjo5iwZ0zSRzYl/D2da/xtu++J6x9EqnXX0FFYRFzb/onKSOG1sazZc48QpMTqS4r91UY8j8yRqV6TaFSvT+YbdsrbNu+uubmOGDEIZr/4Tan7SSpQwyJ7WMIDAxgzJQB/Lgw7aDtF8xZzZipA2pvWy4XlRVVuKpdVJRXEh0b0RzdPqhf0neS2CGGhPYxBAQGMGLSAJYfIp4fvl3NyMnuePZsz6RHn460DWqDf4A/xwzoxk8L1jdX1xt1tMVT345NO4hrH0tsciwBgQEMHD+A9Us8+2cMlJdVYNs2FWUVhISF4OffcpaprF+2E54YS3hCLP6BAXQdOZCdK9Z5tDEGqmpiqC6voG2oOwZjDIHBbQH3PLJcLndjH3Ju2ElyhxiSO7jXg3FT+/PD9wc/3+bNWcP4aQMOuH/1T5tJ7hBDQnL0H9ldr35J91zfRk0ewE+HmD+Lv13N6Hrzp2e9+dN7YDd+9PH8cabtJDklhqSa8Rk7pT9LDjE+33+9hvH11muXy6Kidr2uIjouvDm6fVAZm3cQkRRLRKJ7/vQYNYitPzV4jY2hsqwc27apKq8gqGb+tIuOIL5bCgBtgoOI7pBIcU6BD6KoU7h1G8Hx8QTHxeEXEED80MHkrF7r0cZgcJW71wNXeQUBoe0wfi1nTasvb8t22iXE0S7eHU/71MHsX7m2QStDdXl57frWpl1dPGW5eWSs2UCnsSObv/MizaRlzl4fMsbcboxxGmO+M8b81xhzgzHm+5qdI4wxscaY7TXfdzbGLDLGrKr5OiApMsaMM8Z8XrMLdTlwrTFmjTFmtDFmmzEmsKZduDFm+6+3/yg5WQXEJkTW3o6JjyAnq/H/fMrLK1m1bBMjxvetbTvjvHFcPP1e/nzC3bQLDWJgquOP7K5XuVkFxMR7xpN7kHgqyitZs2wTqePc8aR0S2Tjmq0UFZRQUV7J6qUbycnIb5Z+H8zRFk99BdkFRMZF1d6OjIukINszttGnjiZjRwZ3nnUXM//yEKddOQO/FvQmozS3gHYxdTGEREdR0uDN2zHTxlKwZz//vfR2Prz+AVIvOqP2jYXlsvjohgd565JbSO7bi/genZuz+wfIziogPrHufIuLjyQn8yDrQVklK5ZsYvTEvgccmz9nDeOn9v/D+tlUOb9x/qxetonUmvWtY9dE0uvNn1VLNpLt4/mTnVlAXL31Oi4h8uDrdVklK5ZuYlTN+MTGR3DmeeM478T7OGfqPYSEBjF4uG/X65LcfMJi6+ZPaEwkJTmer3HfE8aQtzuDVy/5B/+95kFGX3L6AYlGYWYOWdt2k9izU7P0+2Aq8/NpG10XT9uoKCryPeNJnjCekn37WHb9Tay46x66n3N2bTzGwLrHn2TlPfezd8HCZu17Y8rz8gmuF09wdBTleZ7xdJk8juK9+5nzt1uYf9t9HPv/27vzeKvqev/jrzfHgXlGcQJxwjRBxVmcy6EcMTVTK628P685ltl4M8tbmlqmZZZlTrdu2m2yVHJAcsgBQUhwqNRUREBGAVHg8/tjrQ37HM7hwNmH891r8X4+Hj7OWWvvI+8P++zF/q7vdNoJy+uZdNsd7PjR4+q2YWjWHupj/EudkDQC+CiwC9nfzdPAuFX8yHTggxHxjqRtgV8CuzX3xIh4WdKPgbcj4sr8zxsDfBj4Xf7n/iYi3msm15nAmQCXfv9sTvrk4U2fstoiVj7X0j3vJ//6LO8bNoQevboC8Pa8hTz+0LPc+Luv0K1HF77zxZt58O5xHHTEiDbnqVWz9bRQ0LiHn2XosCF0z+vZfMuNOebUg/nWuTfQueuGDN5mUzo1NKzFtK0rWz3VmiltpeKee/I5NttmMz571dnMnDqTH33herbeaWs6d+vcIRlbt3IVTV+f1ydMoe+Wm3PE189l/rSZ3P3N6xj4vq3ZoGsXOjV04rgrv8TiBQu5/7s/Zda/p9J30KYr/T87SnO/by39wj02djI7Dt+SnvnvW8V77y3hsbHP8ulzPrQWEq6hZn/JmvfkX59l+51WXN82H7Ixx512MJeccwNdum7IlttuSsN6id8/zV4Pmn99/vbXyexQ9frMn7eQRx/6O7f88ct0796Fb158C/f9eRwf+FC663Wzr0+Tev49fgr9h2zGsZeew9xpM/n9Jdex6Q7Z+wfg3UWLufvyn7HfGaOWn0tmNX7fZj/7LN0HbcHwiy7knekzmHj19+m13Tas16ULO3/xC2zYpzfvzpvHxKuuoevAgfQeut3az92CWI1/gGZMmkzPQZuzz5fOZ8H0GTz2nR/Qb+g2vPXcP9iwZw96DxnMzCkvdFBia18eqrc6fFugsf2A30bEwoiYB/yhleevD/xU0iTgDmCHNfzzbgROz78/HbipuSdFxE8iYreI2K2WRhNkdyGr76K+NX0ufQc0P9xu7OgJ7H/oimEfE554kY037UuvPt1Zb70G9jloGFMmvlxTnlr126gXb01vXE+fFoYPPvKXCYz8YONhRgcfvSeX33wh37j+bLr37MomW/Rfq3lbU7Z6qvXu34s5M2YvP54zYw69+jUeOvT4vU8wfOQwJDFgswH0G9iPN199s6Ojtqhr394seGtFDQtnzaZr38avzwsP/o0t9xyOJHpuMoAeG/Vj7uuNa9iwW1cG7rgtr0+Y3CG5WzJgo15Mn7bi923G9Dn0a2E415jRzQ/Te+KR59h2+83p06/HWsu5upp7/7R0fXv4vgmMPLRxPR84ek+uuuVCvvXj/P2zedr3T/+NezGj6no948059O3fwutzb+NheuMff5GBm/Wjd5/urLd+AyMP3onJz7y8tiOvUrd+vZk/c8X75+235tCtyftnygN/Y+u9svdP700G0HOjfsx+LXv/LF2ylLuvuJHt9t+NrfdO38O5QZ/eLJ61op7Fs2ezYe/ejZ4z7eFH6b/rLkiiy8Yb0bl/fxa+MQ2ADftkz92gZ0/677oz8196ucOyN6dL3z4sqqpn0azZdO7d+PX599jH2HT3nZFE9403ouuAfrw99U1mvfBPpj09kdEXfIWnfvgzZk5+nnHXN/uRxqzQ3HBaWXP3kJaw4u+q+tb3BcCbwHCynqYN1ugPingE2FLSAUBDRPx9zeOumW132IKpr85k2utv8d57Sxg7ejx77LfjSs9b8PYi/j7+n+x1wIrHBgzszXN/f4V33nmXiOCZJ19kiy03WtuRV2nr923BG6/OZPrUt1jy3hIevW88uzVTz8K3FzF5/D/Zbf/Gj82dNR+AmdNm88SYicvnC6VStnqqDdp+EDNen8lbb2S1Pf3geN6/T+PFBPps1JsXxmd3K+fNms/0V6fTb5N+KeI2a8A2g5n3xgzmvzmTpe8t4V+PPM2g3RoPXevevw9TJz0PwKI585g79U16bNyfRXPns3jBQgCWLH6XqROfp9dmG3d4DdWG7rgFr786kzfy68GYeyewzwEr/769PX8RE8f9k30OXPmxB++pj2F6ANvk7583p2b1PPyX8ezewvVt8vh/skeT98+c/P0zY9psHh8zkf0OTfv+GbpD49fnodET2LuZ12fB/EVMevqf7H1gk+v1pFd4Z1F2vR7/xIsMGpL2923jbQcx940ZzMvfPy8+PI4hu+/U6Dk9+vfl1YnZNWDhnHnMmTqdngP7ExE88MPb6bv5QHY55uDm/vcdrueQLVn05nQWzZjJsiVLmP7EU/TbeXij52zYry9zpjwHwLtz57Fw2pt0GTCApYsXL19AYenixcx+djLdNkvX+wzQe6vBLJg2nQXTs3pe/9tTDNy18fWtS78+zHg2u769M3ceb097k64b9WeHk47lsB98m0O/dxm7nf0p+u8wlBFnnd7cH2NWaB6q19hY4BeSvkP2d3MUcAPwMjACeAL4SNXzewGvRcQySZ8AWhvXMR9oervwFrIhft+sOf1qaFivgf930Si+fu5PWLYs+MBRezB464Hc/Ztsob8jjs+maT02ZhK77DmUzvlkdoCh7x/MvocM4/zTrqahoYGthm7G4cft3RGxW9SwXgNnfG4Ul52f1XPQkXuwxVYDGf1/WT2HjsrqeeKhSQxvUg/AVV++mflzF7Leep341OdH0b1n15X+jI5UtnqqNTQ0cPw5x3P9xT9m2bJl7HXEnmyy5SY8/MdHABh51L4cduph3H7F//CdT19ORHDUZ46ie6/6WHEKoFNDA3t/6kTuueyHxLJgu4P2os8WmzBl9F8BeN+h+7HzRw5n7A9v4/8uvIwAdj/1GDr37M6sV17noetuJZYtIyLYau9dGTRip1X/gWtZw3oNnHPxcXzx7J+ybFlw+NG7s+XWA/njndnv21EfyX7fHnnw74zYayhdmvy+vbPoXcY9/gLnf+X4Ds/enIb1Gvj050dx6XnZ++eQI/dg0FYDuTd//xyWv38eHzOJ4Xus/P757pey90/Dep34TB28fxrWa+CzXziOL3/2pyxbGhx2TPb63JW/PkdWvT67Nnl93rfTYPY7ZBj/ecr3aFivE9sM3YwPjdorSR0VnRoa2P8zJ/D7b/yIWBbscMhe9Bu0CX+/52EA3n/4SHY78XDu/8Ft/M95/w0B+5x2DF16dmfq5H/y/Jgn6Td4U351wXcA2OvUo9hyxMoNyY6ihga2OeWjTPreNcSyZQwcuS/dNtuUqWMeAmDTAw9g8JEf5vmf/4Kn/usbRMBWHzmO9Xt0Z9GMGTx73Y8BiGVL2WjPPei7U9pVKTs1NDDs4x/lse9eSyxbxqD996Hn5pvy0v3Z/Kshh+zPdsd+iPE/uYUHvvRNiGCHk45jwzpZFdBqI/elrBY1O6Z1HSbpK8DHgVeA14DJwF3Ar4G3gQeAUyNiy3xe02+AhcCDwDkR0b3JcuQHAp+PiCMlbQfcCSzLn/tXSQOBl4BNIqLVmcgvzL2rVC/YoqWpE9iqvLGwfuZItYeJs8p1r+jkrcu15O+8d8s1xr77+qW6XPOHf2/Y+pMKZNKsNRokUvd6b7AsdYR2d8Ue9dG72I7q9iL33rLxdXnBWr/TLnX1d1auTxHtICIuAy4DkHRJfu45oLq/+qv5+RebnP9Sfv5l4P3592OAMfn3LzR5PsBI4M7VaTSZmZmZmVkabjglJOla4AigDpajMjMzM7N1U1117NQtN5xWISIuWcv//3PW5v/fzMzMzMzah2eCmZmZmZmZtcI9TmZmZmZm6zB5qN5qcY+TmZmZmZlZK9xwMjMzMzMza4WH6pmZmZmZrcMkD9VbHe5xMjMzMzMza4UbTmZmZmZmZq3wUD0zMzMzs3Wa+1JWh/+WzMzMzMzMWuGGk5mZmZmZWSs8VM/MzMzMbB3mDXBXj3uczMzMzMzMWuGGk5mZmZmZWSs8VM/MzMzMbJ3moXqrwz1OZmZmZmZmrXDDyczMzMzMrBUeqmdmZmZmtg6TPFRvdbjHyczMzMzMrBXucTIzMzMzW6e5L2V1+G/JzMzMzMysFW44mZmZmZmZtcJD9czMzMzM1mHyPk6rxT1OZmZmZmZmrXDDyczMzMzMrBWKiNQZrA5JOjMifpI6R3txPfXN9dS/stXkeuqb66lvrsfWVe5xspacmTpAO3M99c311L+y1eR66pvrqW+ux9ZJbjiZmZmZmZm1wg0nMzMzMzOzVrjhZC0p21hf11PfXE/9K1tNrqe+uZ765npsneTFIczMzMzMzFrhHiczMzMzM7NWuOFkZh1KUidJ+6TOYWZmZrYm3HAyACQ9JelsSX1SZ2kPZaunTCJiGXBV6hzWOkmDJX0g/76LpB6pM9WibPWYmVnHcsPJKj4KbAo8KelXkg6TpNShalCKeiRNkjSxpf9S56vBaEnHF/E1WVdI+gxwJ3BDfmpz4HfpEtWmhPUcKcn/hpu1gaSG1BmsmLw4hDWS/0N8JHA9sAz4OXBNRMxKGqyNil6PpMH5t2fnX2/Nv54CLIyISzs+Ve0kzQe6AUuAdwABERE9kwargaQrgG8Bi4B7gOHA+RFxW9JgbSRpArAH8HhE7JKfmxQRO6VN1jYlrOc2YG8KbRZjAAAdrElEQVTgN8BNETElcaQ2kzQJaO7DSOW6MKyDI9WsTNeDkr4+L5HdSLkpIianzmPFsV7qAFY/JA0DTgc+RPaP8e3ASOABYOeE0dqkDPVExCsAkvaNiH2rHvqipEeAQjacIqKMQ6QOjYgvSDoOeA04AXgQKNwHpdziiHi30ikoaT2a//BUFKWqJyJOldQTOBm4SVIANwG/jIj5adOtsSPzrwL+RHbNLroyXQ+ObP0phTOMbGTKjfkN1p8Dv4qIeWljWb1zw8kAkDQOmAP8DPhiRCzOH3pc0r4t/2R9Kls9QDdJIyPiYYB8cYVuiTPVJJ9/ti3QuXIuIsamS1Sz9fOvHyL78Dqr4CMRH5L0ZaCLpA8C/wn8MXGmWpStHiJinqTfAF2A84HjgIsk/SAirk2bbvVVbhABSFpcfVxgpbkeNHl9NgZ2zw+fiIjpaVLVJr+58FPgp5L2B34JfE/SncA3I+IfSQNa3fJQPQNA0lYR8a8m54ZExEupMtWihPWMILsj1is/NQc4IyKeTpeq7SR9GjiPbJ7JBGAv4LGIODhpsBpI+g5wLNnQnD2A3sBdEbFn0mBtlN+F/RRwKFlPwL3AjVHQfzRKWM/RZD3qW5MN4b05IqZL6gpMiYjBq/wf1ClJT0fErqlz1Kps1wMASScC3wXGkL2H9gMuiog7U+Zqi3yO04fJ3kNbkr2Hbier6b8jYrt06ayeueFkQPP/WEkaFxEjUmWqRdnqqciH5igi5qbOUot8zPzuwN8iYmdJ2wPfiIiTEkerSd6LNi8ilkrqBvSIiGmpc1n5SLqFrOG3Ui+tpEMi4v4EsdpEUvW1+nayOZzLFfgGUamuB5KeAT5Y6WWSNAC4LyKGp0225iT9i2zo5M8i4tEmj/0gIs5Nk8zqnYfqrePyD6w7Ar0kjap6qCdVQ6iKooT1nBoRt0m6sMl5ACLi6iTBavdORLwjCUkbRsRzkoamDlWL/E7/2cAg4EyyVR2HAnelzLWmVjERHICiTQQvWz1V3mjaaJJ0eURcXKRGU656e4JpwJX59yJ77QrXE12W60ETnZoMzXuL4q7O/PHK0PeKfC7xI2402aq44WRDySZ+9gaOqjo/H/hMkkS1KVs9lXlMZVtM4TVJvcmWg/6LpNnA1MSZanUTMA6obO77GnAHxfugVJkI3uxKjh0fp2Zlq6fig8DFTc4d0cy5uhcRB0G2txbZ3LORZA2mv5KtiFpEZbkeVLtH0r1k84EATgL+nDBPLX4ANB0Sem0z58wa8VA9A0DS3hHxWOoc7aVs9ZSZpAPI5m7dExHvps7TVpKeiojdJI2vWu76mSIOYwGQ9EiTlRybPVcUZalH0llkjYutgeoJ7D2ARyLi1CTB2oGkXwPzyIbrQbZiYO+IODFdqrYp2/WgQtLxwL5kvYFjI+K3iSOtEUl7kzVmzwe+V/VQT+C4or8+tva5x2kdJ+kLEXEF8DFJJzd9vGhd1mWrp0LSzcB5ETEnP+4DXBURZ6RN1jaS+lYdTsq/Fv0uzrv5HfMAkLQ1sHjVP1LXyraSY1nq+R/gbuDbwBerzs8vyv50qzC0yQfXB/N5NUVUtusBABHxG7LtPYpqA6A72eff6pEc84CPJElkheKGk1U2TXwqaYr2U7Z6KoZVGk0AETFb0i4pA9XoaWALYDbZncvewBuSpgOfiYhxKcO10dfJNrrcQtLtZHdlP5k0UW0+BfxcUqOVHBPmqVVZ6omIeFnS2U0fkNS34I2n8ZL2ioi/AUjaE3gkcaa2uoSVrwenJ01Uo3ze8OXARmTX7cJtXB4RD5FtTfCLkix7bx3MQ/XMCiC/63pgRMzOj/sCD0XETmmTtY2kHwO/jYh78+NDgcOBXwPXFHXJXkn9yJZWF9mKgTMTR6pZWVZyrCh6PZLuiogjJb1E1ptRvTlQRMRWiaLVTNIUsnmq/85PDSK7GbaMrLZCLeRRtuuBpH8AR0XElFafXKckfT8izpf0R5oZ5RARRyeIZQXihtM6rqWLR0XRLiJlq6dC0seBLwGV/TJOAC6LiFtb/qn6VRn/39w5SRMiYudU2dZUk6WUV1K0pZRbWsmxomgrOZatnjKTtMq9p4rUQyDp/og4pLVzRVLEOYFNSRoREePyubUryXukzFrkoXpWWfZ1FDAQuC0/Phl4OUWgGpWtHgAi4hZJ44CDyO5ejoqIyYlj1WKWpIuBX+XHJwGz800Jl6WL1SaVpZQ7A7sBz5C9RsOAx8lWCCuSsq3kWLZ6gGzpZGBCRCyQdCrZamDfj4h/t/KjdatIDaOWSOoMdAX653NRKz2CPcmWJC+cqq09npL0v2SroS6frxUR/5ckWBtUhoG7gWRt5R4nA0DS2IjYv7VzRVG2eiokbUTVflRF/ZAkqT/ZnKCRZB8sHga+AcwFBkXEP1bx43VJ0q/IegEn5cfvBz4fEZ9MGqwdSdqgyCsfNlXkeiRNBIaTNdBvBX5GdkOl2Tvp1jEknUe2YtumwOusaDjNA34aEdelytZWkm5axcNRpEWKSryvm3UQN5wMWD62/MMR8a/8eAjw54h4X9pkbVPCeo4m69nYFJgODAamRMSOSYPZcs0NMSzasMNqksYAn4yIl/Pj3YEbi7pcbwnreToidpX0X8DrEfGzyrnU2QwknRMR16bOYY2VaTiopeGhelZxATBG0r/y4y2B/0gXp2Zlq+ebZJOM74uIXSQdRDb8sJAkPUjzE3MPThCnvUyRdCPZ8NAATmXFKo9F9G2yDS9/AGxGtrlqkVcFK1s98yV9iez3bP98mOv6iTNZLiKuzXudd6DxKIFb0qWqjaTNyTaJ3ZfsGvcw2TYZryUNtgbcMLJaucfJlpO0IbB9fvhcRBR6z4ky1VO1cMIzwC4RsUzSExGxR+psbSFpRNVhZ+B4YElEfCFRpJrlcxvOAirDQccC10fEO+lS1UbSgcBfgJlkv3fT0iaqTZnqkTQQ+BjwZET8VdIgspU3C/vBvEwkfR04kKzh9GeyhvrDEVHYvYIk/YVsH7HKokSnAqdExAfTpWobSXuRNQLfR7a3UwOwoEhLq1sabjit4yQdHBEPVE3+bKRIkz6hfPVUSLoPOJbsrnl/suF6u0fEPkmDtSNJD3l+Rv2Q9DXgROBMsnk0FwCfi4g/JQ3WRmWrx+pbPpdmODA+IoZL2phsaOhRiaO1WZmGI0t6CvgocAfZoj4fB7aJiK8kDWZ1z0P17ADgAaC5i3kARWtolK2eimOARWQf9k4BegGXJk1Ug3wfqopOwAiyVRALR9KvI+LEliYdF3iycX9gj4hYBDwm6R7gRqCoDY1S1VOGzUhLblE+MmBJvnfYdKCwe2zlZuYrOP4yPz4ZeCthnppExD8kNUTEUuAmSY+mzmT1zz1OZtbhmmzeuQR4Cbg0Ih5OGqwNJG0SEW+0NOm4yGPq87vku+eHT0TE9JR5alWmesqwGWmZSfoR8GWyXo3PAW+TLR9f2Hl1+XDQ64C9ya7fj5LNcSrcNU7SWOADZDdPpgFvkC0eU8jFYqzjuOFkAEj6b+CKiJiTH/chG8by1bTJ2qZs9Vh9yyfm3xsRH0idpb1IOoFsX7QxZA3c/YCLIuLOVf1cvSphPYXfjHRdIWlLoGdETEwcxXL5ja7pZAuqXEA2iuNHRdwKwzqWG04GgKTxEbFLk3OFXdq2bPWUTf4h9p6ImC/pq2Sbd34rIp5OHK3NJP0BOC0i5qbO0h7yhUg+WOmVkTSAbFXHQt6RLWE915ANby3sZqRlJ2kzsq0jlk+LiIix6RLVRtLNZD1M1TckryrSPk5mtfIcJ6tokLRhZeU5SV2ADRNnqkWp6pHUjXzMfH7cCegcEQvTJmuzr0XEHZJGAoeR9QRcD+yZNlZN3gEm5StPLaicjIhz00WqSacmQ9neIpuPVlRlq6cnsBA4tOpckedxloqky4GTgMnA0vx0kK22WVTDKo0mgIiYLWmXVf1AvaoaLt5IRBR9HpqtZW44WcVtwP35DuEBnAHcnDZSTcpWz/1k47Hfzo+7AqOBoq6qV/kg8WGyJbt/L+mShHnaw58o6EIDLbhH0r2smAh+EtmyykVVqnqKPFdmHXEsMLTI22A0o5OkPhExG5Yv8lPUz5G7VX3fGTgB6NvCc82W81A9W07SEcAhZOP/R0fEvYkj1aRM9ZRpGVgASXcBr5M1BkeQrRj4RFGHTVVI2gDYLj98PiLeS5mnVpKOJ9vsUsDYiPht4kg1KVM9krYj66XdOCLeL2kYcHREfCtxNAMk3Q2cEBFvt/rkgpD0ceBLQGVe4AnAZRFxa8s/VRySHo6IkalzWH1zw8msACQ9ApxTmQOUbyB7XUTsnTZZ20jqChwOTIqIFyVtAuwUEaMTR2uzfHPVm4GXyT6YbwF8oshzGqx+SXoIuAi4oTKfU9LfI+L9aZOt2yRdSzbKYTOyfZzup/EctKIO3QVA0g7AwWTXuPsjYnLiSG0iqXq+cyeyHqizin7zztY+N5wMKN8u2iWsZ3fgV8DU/NQmwEkRMS5dKqsmaRzwsYh4Pj/eDvhlRIxIm2zNVO66SppP4zkAhdwnqGz1VEh6MiJ2r14Ip8i90GUh6ROrejwiCjdkvMm+eyuJiFkdlaW9SHqQFdeDJWQ3vK6MiBeShbJCKOrYVGt/19HMLtpJE9WmVPVExJOStgeGkn3ge67ow8BKaP1KowkgIl6QtH7KQG1RGaoSET1SZ2kPZaunykxJW5N/+JP0EbK9aCyh6oZRPnR3e7LX6PmIeDdZsNqMY8W+e7CiwaH8+yIuqHAXK9d0pJQdRsTViXJZnXPDyZYr2y7aZahH0sER8YCkUU0e2laSlx6uL09J+hlQGe9/CtkHjkIp293lstVT5WzgJ8D2kl4n20T6lLSRrELSh4AbgH+SfTgfIuk/IuLutMnWXEQMqXyfv5+2JVtQochGkG2G/Xuy1+coshUPX00ZyuqfG05WsTC/OzZB0hVkdy67Jc5Ui7LUcwDwANlFvSkvPVxfziL7MHsu+eIDwI+SJmqb6rvLg4DZ+fe9gX8DQ1r+0bpUqnokXVh1+GfgQbI5GguA4wHfKa8PVwMHVTZUzXsH/wQUruFUIenTwHnA5sAEYC/gUbJFmIqmP7BrRMwHyFd1vSMiPp00ldU9N5ys4jSyf3w/S7aL9hZk/wgXVSnqiYiv53s23R0Rv06dp1bNzDNZ/hAFnm8CkC87fDUF/+Baubss6cfAHyLiz/nxEWSrIBZK2eoBKkMOh9L4jvlpFHuPoLKZXmk05f4FTG/pyQVxHtnv3N8i4qB8+Pg3Emdqq0FA9dDJd4Et00SxIvHiEGYFIGlsROyfOoetTNIkmm8MAhARwzowTruRNK7pwhaSnoqI3Vr6mXpWwnpGA8dX3THvQXbH/PC0yQxA0vXAYODXZNeHE4DngUeAQg6zrlqQZAKwZ0QsLuqCJJK+ApwI/Jbs9TkO+N+I+HbSYFb33ONkVgx/kfR54H/JhuQAhZ6fAYCkjagaKx8R/04Yp62OTB1gLZkp6atkm0kHcCrwVtpINSlbPb5jXt86A2+SDbcGmEG2wepRFHeY9WuSegO/I/s3aTYrVnotlIi4LN9ra7/81OkRMT5lJisG9ziZFYCkl5o5HRFRxNWMkHQ0cBWwKdnwlcHAlIjYMWkwWy6fBP51YH+yD3pjgUuL2lgvYT2+Y27JSDoA6AXcU+DVAs3WmBtOVmqSukXEgtafWd8kdY6Id1o7VxSSniHbRPG+iNhF0kHAyRFxZuJobZavfHg5sBHZnJPCz9uy+pZv4lm5Yz7Wd8zTq9oAt1lF3wDXbF3noXrrOEl/ZNUX+aM7ME67kbQPcCPQHRgkaTjwHxHxn2mTtdmjwK6rca4o3ouItyR1ktQpIh6UdHnqUDW6AjgqIqakDmLrhoh4Gng6dQ5r5KnUAcxs7XHDya7Mv44CBpKN/wc4mWwn7aL6HnAY8AeAiHhGUuEWV5A0ENgM6CJpF1Zs1tcT6JosWO3mSOpONlzqdknTyXZvL7I33WgyW7dVb4BrZuXjoXoGNL9qW5FXcpP0eETsKWl8ROySn3smIoanzrYmJH0C+CSwG43vZM4HflHElZkgG0IJvEPWEDyFbKz87RFRuMn6VZsTH0B28+F3wOLK40V8jSQ1AOdGxPdSZ2kPZavH6p+kB2lmNEdEHJwgjpm1E/c4WcUASVtFxL8AJA0BBiTOVItX8+F6kW+Eey5QuN6A/O7lzZKOj4jfpM7TXprMOyv6HdrK5sQBLAQOrXqskKtnRcRSSceQ9dwWXtnqsUL4fNX3ncn2ESx6r7rZOs89TgaApMOBn5Bt0gfZsrb/ERH3JgtVA0n9gWvINrgUMBo4r2g9GpJOjYjbJH2O5u9eFnKz1SYb4W4ArA8sKPJCCpJuJvsdm5Mf9wGuiogz0iZrG0mXkfUENl0Cv5BzaspWjxWPpIci4oDWn2lm9co9TgZARNwjaVtg+/zUcxGxeFU/U88iYibZELCi65Z/7Z40RTuLiB7Vx5KOBfZIFKe9DKs0mgAiYnY+L62o9sm/Xlp1LshWQyyistVjdSxf/r6iE9lw64GJ4phZO3GPkwEgqStwITA4Ij6TN6KGRsRdiaOtES8FW1yS/hYRe6XO0Vb5EusHRsTs/Lgv8FBE7JQ2mZl1tHzvvSAb8fAe2WJLl0bEwylzmVlt3ONkFTcB44C98+PXgDuAQjWcKOlSsCUcBjaq6rByN7bod3GuAh6VdCdZLScCl6WN1HaS/qu58xFxaXPn613Z6rG6dzHZ5rDzJH2NbOuIhYkzmVmN3HCyiq0j4iRJJwNExCJJau2H6k2Jl4It2zCwo6q+X0J2N/aYNFHaR0TcIukpsqFfAkZFxOTEsWpRvYBHZ+BICrjASpWy1WP17asR8WtJI4EPkt1YuR7YM20sM6uFG05W8a6kLuR3/SVtTdWSykUh6fsRcX5LG/sWdUNfoJOkPk2GgRX2/RsRp6fOsDbkDaUiN5aWi4irqo8lXUm+L1oRla0eq3tL868fBn4cEb+XdEnCPGbWDgr7wcva3SXAPcAWkm4H9gWK+OH21vzrlat8VvGUYhiY56AVWldgq9Qh2lHZ6rH68rqkG8hWdr1c0oZkw5LNrMDccDIAImK0pHHAXmTDjM7LV6YrlIgYl3+7c0RcU/2YpPOAhzo+Ve1KNAysMgdtX2AHsqWhAU4gm2NndULSJFY0chvI9nUr7HygstVjde9E4HDgyoiYI2kT4KLEmcysRl5VzwCQdCvw2YiYmx8PBn4eEYekTdY2kp6OiF2bnBsfEUWeF1Qakh4EDo2I9/Lj9YHREXFQ2mQmaUhEvJRfAyqWAG9GROE28CxbPWZmlo57nKziYeBxSRcCm5HdGftc2khrLl/c4mPAEEnV8xd6AIXa/LbkNiV7TWblx93zc5bencAICnzjpImy1WNmZom44WQARMQNkp4FHgRmArtExLTEsdriUeANoD/ZvKCK+cDEJImsOd8Bxuc9TwAHkM2zs/Q6Sfo6sF1+I6WRiLg6QaZalK0eMzNLxA0nA0DSacDXgI8Dw4A/Szo9Ip5Jm2zNRMQrwCus2I/K6lBE3CTpblYszfvFgjbUy+ijwLFk/z70SJylPZStHjMzS8RznAwASb8DzoyI6fnxHsBPImLntMnaRtJewLXA+4ANyCaDL4iInkmDreMkbR8Rz0natbnHI+Lpjs5kzZN0RETcnTpHeylbPWZm1vHccLIWSdogIt5NnaMt8hXoPgrcAexG1pO2TUR8JWmwdZykn0TEmVVD9KpFRBzc4aGskeaGs1Ur2tC2stVjZmbpeKjeOk7SFyLiilXsr1PYfXUi4h+SGiJiKXCTpEdTZ1rXRcSZ+Vevnle/yjacrWz1mJlZIm44WWUvoKdW+aziWShpA2CCpCvIFozoljiT5SSdANwTEfMlfRXYFfhmRIxPHG2dFxHfSJ2hPZWtHjMzS8dD9dZxkm6NiNMkndd0w9giy/dsmQ6sD1wA9AJ+FBH/SBrMAJA0MSKGSRoJfBu4EvhyROzZyo9aB5F0E830QkfEGQni1Kxs9ZiZWcdzj5ONyBsZZ0i6BVD1gxExq/kfq2/56noAiwDfca4/S/OvHwauj4jfS7okYR5b2V1V33cGjgOmJsrSHspWj5mZdTD3OK3jJJ0LnAVsBbxO44ZTRMRWSYK1kaRJND9XC4CIGNaBcawFku4i+337ANnmpIuAJyJieNJg1iJJnYD7yrKAR9nqMTOztc8NJwNA0vURcVbqHLXKe89aVNUTZQlJ6gocDkyKiBclbQLsFBGjE0ezFkgaCvwpIrZJnaU9lK0eMzNb+zxUzwAoQ6MJGjeMJG0M7J4fPlHZo8rSi4iFkqYDI4EXgSX5V6sTkubTuPd2GnBxojg1K1s9ZmbW8dzjZKUk6UTgu8AYsuGH+wEXRcSdKXNZRtLXyfbXGhoR20naFLgjIvZNHM3MzMysWZ1SBzBbS74C7B4Rn4iIjwN7AF9LnMlWOA44GlgAEBFT8X47dUXSvpK65d+fKunq1obC1rOy1WNmZh3PDScrq05Nhua9hX/f68m7kXV3B0DlA63VlevJ9kMbDnwBeAW4JW2kmpStHjMz62D+IGlldY+keyV9UtIngT8Bf06cyVb4taQbgN6SPgPcB/w0cSZrbEneuD0GuCbf563IvYJlq8fMzDqY5zhZaUkaRbb4gICxEfHbxJEMkCRgc2B74FCy1+feiPhL0mDWiKSHgHuA04H9gRnAhIjYKWmwNipbPWZm1vHccLJSknQB2WIDr6XOYiuTNC4iRqTOYS2TNBD4GPBkRPxV0iDgwIgo5PC2stVjZmYdzw0nK6V81bYTgVnAr4A7I+LNtKmsQtIPgV9ExJOps5iZmZmtDjecrNQkDQNOAo4HXouIDySOZICkycB2ZBP0F5AN14uIGJY0mJmZmVkLvAGuld10so0u3wI2SpzFVjgidQAzMzOzNeEeJyslSWeR9TQNAO4E/jciJqdNZVYskroAgyLi+dRZzMzMUnOPk5XVYOD8iJiQOohZEUk6CrgS2AAYImln4NKIODptsjUjaRL5fmFNH8LDQ83MbA24x8nMzFYiaRxwMDAmInbJz00sWkND0uBVPR4Rr3RUFjMzKzb3OJmZWXOWRMTcbNut4nLDyMzM2kun1AHMzKwu/V3Sx4AGSdtKuhZ4NHWotpK0l6QnJb0t6V1JSyXNS53LzMyKww0nMzNrzjnAjsBi4H+AucD5SRPV5jrgZOBFoAvwaeDapInMzKxQPMfJzMxaJKlbRCxInaNWkp6KiN2q52lJejQi9kmdzczMisE9TmZmthJJ++QbFU/Jj4dL+lHiWLVYKGkDYIKkKyRdAHRLHcrMzIrDDSczM2vO94DDyDaPJiKeAfZPmqg2p5H9m/dZYAGwBTAqaSIzMysUN5zMzKxZEfFqk1NLkwRpH8dGxDsRMS8ivhERFwJHpg5lZmbF4YaTmZk151VJ+wAhaQNJnycftldQn2jm3Cc7OoSZmRWX93EyM7Pm/D/gGmAz4DVgNHB20kRtIOlk4GPAEEl/qHqoJ/kwRDMzs9XhhpOZmTUiqQH4fkSckjpLO3gUeAPoD1xVdX4+MDFJIjMzKyQ3nMzMrJGIWCppgKQNIuLd1HlqERGvAK8Ae0vaGNg9f2hKRCxJl8zMzIrGDSczM2vOy8Aj+fC25fs4RcTVyRLVQNIJwJXAGEDAtZIuiog7kwYzM7PCcMPJzMyaMzX/rxPQI3GW9vBVYPeImA4gaQBwH+CGk5mZrRY3nMzMbDlJt0bEacCciLgmdZ521KnSaMq9hVeWNTOzNeCGk5mZVRshaTBwhqRbyIa1LRcRs9LEqtk9ku4FfpkfnwTcnTCPmZkVjCIidQYzM6sTks4FzgK2Al6nccMpImKrJMHagaRRwEiymsZGxG8TRzIzswJxw8nMzFYi6fqIOCt1jvYi6fKIuLi1c2ZmZi1xw8nMzEpP0tMRsWuTcxMjYliqTGZmViye42RmZqUl6SzgP4GtJFVveNsDeCRNKjMzKyL3OJmZWWlJ6gX0Ab4NfLHqofkFXujCzMwScMPJzMzMzMysFd7DwszMzMzMrBVuOJmZmZmZmbXCDSczMzMzM7NWuOFkZmZmZmbWCjeczMzMzMzMWvH/AdQIFUFC4fkUAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1008x1008 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 灰色关联结果矩阵可视化\n",
    "import seaborn as sns\n",
    "\n",
    "def ShowGRAHeatMap(DataFrame):\n",
    "    colormap = plt.cm.RdBu\n",
    "    ylabels = DataFrame.columns.values.tolist()\n",
    "    f, ax = plt.subplots(figsize=(14, 14))\n",
    "    ax.set_title('GRA HeatMap')\n",
    "    \n",
    "    # 设置展示一半，如果不需要注释掉mask即可\n",
    "    mask = np.zeros_like(DataFrame)\n",
    "    mask[np.triu_indices_from(mask)] = True\n",
    "    \n",
    "    with sns.axes_style(\"white\"):\n",
    "        sns.heatmap(DataFrame,\n",
    "                    cmap=\"YlGnBu\",\n",
    "                    annot=True,\n",
    "                    mask=mask,\n",
    "                   )\n",
    "    plt.show()\n",
    "\n",
    "ShowGRAHeatMap(data_wine_gra)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-07-19T08:03:40.866126Z",
     "start_time": "2019-07-19T08:03:40.371417Z"
    }
   },
   "source": [
    "## 代码运算性能对比\n",
    "一段来至于其他博客的纯pd代码，主要用于对比性能。测试这个纯pd确实比我的np为主的代码慢很多。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5984435081481934\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "# x=pd.read_excel('data.xlsx')\n",
    "# x=x.iloc[:,1:].T\n",
    "\n",
    "x = wine.T\n",
    "import time\n",
    "t1= time.time()\n",
    "# 1、数据均值化处理\n",
    "x_mean=x.mean(axis=1)\n",
    "for i in range(x.index.size):\n",
    "    x.iloc[i,:] = x.iloc[i,:]/x_mean[i]\n",
    "\n",
    "# 2、提取参考队列和比较队列\n",
    "ck=x.iloc[0,:]\n",
    "cp=x.iloc[1:,:]\n",
    "\n",
    "# 比较队列与参考队列相减\n",
    "t=pd.DataFrame()\n",
    "for j in range(cp.index.size):\n",
    "    temp=pd.Series(cp.iloc[j,:]-ck)\n",
    "    t=t.append(temp,ignore_index=True)\n",
    "\n",
    "#求最大差和最小差\n",
    "mmax=t.abs().max().max()\n",
    "mmin=t.abs().min().min()\n",
    "rho=0.5\n",
    "#3、求关联系数\n",
    "ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))\n",
    "\n",
    "\n",
    "#4、求关联度\n",
    "r=ksi.sum(axis=1)/ksi.columns.size\n",
    "t2= time.time()\n",
    "print(t2-t1)\n",
    "#5、关联度排序，得到结果r3>r2>r1\n",
    "result=r.sort_values(ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0     0.899110\n",
       " 1     0.864843\n",
       " 2     0.918599\n",
       " 3     0.929425\n",
       " 4     0.853435\n",
       " 5     0.850764\n",
       " 6     0.950577\n",
       " 7     0.943061\n",
       " 8     0.936841\n",
       " 9     0.945681\n",
       " 10    0.944877\n",
       " dtype: float64, 6.060007162917876, 3.460713527747572e-05)"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r,mmax,mmin"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 参考文章\n",
    "1. [百度百科 灰色关联分析法](https://baike.baidu.com/item/%E7%81%B0%E8%89%B2%E5%85%B3%E8%81%94%E5%88%86%E6%9E%90%E6%B3%95/8602076?fr=aladdin)\n",
    "2. [简书 Python实现灰色关联](https://www.jianshu.com/p/7f9325551348)"
   ]
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": false,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
